gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:30:35 24 4
gpt4 key购买 nike

我想做的是,如果连续的订单具有相同的邮政编码,则增加 10 分钟,否则,将旅程增加 30 分钟。例如,如果我有一个像下面这样的类,这就是我如何强制实现它的。

@Data
@AllArgsConstructor
public 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) // 70
if order 2 is new Order("2","N2"); // 90

我怎样才能实现同样的事情,或者使用 java 8 流转换以上内容?我尝试(减少)功能但无法理解它。

最佳答案

你可以为此使用 IntStream :

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

关于java - 我如何使用流实现与 Java 8 相同的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57294177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com