我想做的是,如果连续的订单具有相同的邮政编码,则增加 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();
添加回答
举报
0/150
提交
取消