gpt4 book ai didi

java流: easiest way to find adjacent value match

转载 作者:行者123 更新时间:2023-12-01 06:14:52 24 4
gpt4 key购买 nike

如何将这个迭代的代码块转换为流?

Integer prev = -1;
boolean adjacentPair = false;

for(Integer num : numberList) {
if (num.equals(prev)) {
adjacentNumberSame = true;
break;
}
prev = num;
}
return adjacentNumberSame

最佳答案

您可以使用reduce操作。示例代码:

public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 2, 3);
class Result {
boolean adjacentPair = false;
Integer prevItem = null;
}
boolean adjacentPair = list.stream().reduce(new Result(),
(result, item) -> {
result.adjacentPair = result.adjacentPair || item.equals(result.prevItem);
result.prevItem = item;
return result;
},
(result1, result2) -> {
throw new UnsupportedOperationException();
}
).adjacentPair;
System.out.println(adjacentPair);
}

类(class) Result持有中间结果。 adjacentPair字段指示是否遇到相邻对。 prevItem字段保存上一项的值,该值在下一次迭代中进行比较。此函数的第三个参数是组合器,它用于并行流,此示例适用于串行流。

关于java流: easiest way to find adjacent value match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60251473/

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