我想做的是,如果連續的訂單具有相同的郵政編碼,則增加 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
提交
取消