gpt4 book ai didi

java - 如何使用 java 8 对列表的某些特定元素执行一些数学运算?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:38:05 26 4
gpt4 key购买 nike

基于某些条件,我只想对列表的特定元素执行一些操作。

我有一个这样的整数列表:

List<Integer> list = new ArrayList(Arrays.asList(30,33,29,0,34,0,45));

我想从除 0 以外的每个元素中减去 1。

我尝试了一些方法,例如应用 Java 8 的过滤器,但它从列表中删除了零值。我尝试应用为流 API 提供的其他方法,例如 foreach() 或 .findFirst(),.findAny() 但它没有用。

List<Integer> list2 = list.stream().filter(x -> x > 0).map(x -> x - 1).collect(Collectors.toList());
//list.stream().findFirst().ifPresent(x -> x - 1).collect(Collectors.toList()); //This is giving error
list.stream().forEach(x ->x.); //How to use this in this case

实际结果:[29,32,28,-1,33,-1,44]

预期结果:[29,32,28,0,33,0,44]

最佳答案

list.stream()
.map(x -> x == 0 ? x : x - 1)
.collect(Collectors.toList());

关于java - 如何使用 java 8 对列表的某些特定元素执行一些数学运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54182621/

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