为了账号安全,请及时绑定邮箱和手机立即绑定

我如何使用流实现与 Java 8 相同的功能

我如何使用流实现与 Java 8 相同的功能

慕仙森 2023-05-10 14:19:27
我想做的是,如果连续的订单具有相同的邮政编码,则增加 10 分钟,否则,将旅程增加 30 分钟。例如,如果我有一个像下面这样的类,这就是我如何强制实现的。@Data@AllArgsConstructorpublic static class Order{    private String orderNumber;    private final String postCode;}Order order1 = new Order("1","N1");Order order2 = new Order("2","N1");Order order3 = new Order("3","N3");Order order4 = new Order("4","N4");List<Order> orders = List.of(order1, order2, order3, order4);int totalMin = 0;for (int i=0;i < orders.size()-1 ; i++ ){  if (orders.get(i+1).getPostCode().equals(orders.get(i).getPostCode())){      totalMin+=10;    }  else{      totalMin+=30;  }}System.out.println(totalMin) // 70if order 2 is new Order("2","N2"); // 90我怎样才能实现同样的事情,或者使用 java 8 流转换以上内容?我尝试了(减少)功能,但无法理解它。
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

你可以使用IntStream

int totalMin =IntStream.range(0, orders.size()-1)
         .map(i-> orders.get(i+1).getPostCode().equals(orders.get(i).getPostCode()) ? 10 : 30)
         .sum();


查看完整回答
反对 回复 2023-05-10
  • 1 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信