gpt4 book ai didi

java - 使用 Java Streaming API 从 list.forEach 返回一个列表

转载 作者:行者123 更新时间:2023-11-29 06:49:09 25 4
gpt4 key购买 nike

我有一个 POJO:

class MyObject {
private Double a;
private String b;

//constructor, getter + setter
}

一些函数正在创建这个 POJO 的列表。 a 的某些值可能为空,因此我想将它们替换为 0.0。目前我是这样做的。

public List<MyObject> fetchMyObjects(Predicate predicate) {

List<MyObject> list = getMyListsOfTheDatabase(predicate);

list
.forEach(myObject -> {
if (myObject.getA() == null) {
myObject.setA(0.0);
}
});

return list;
}

有没有办法在返回中集成 forEach?有点像

 return list
.stream()
.someStatement();

这不是关于,如果这是将空值转换为零的最佳位置,而是一个更好地理解流式 api 的问题。

最佳答案

使用 peek功能

Returns a stream consisting of the elements of this stream, additionally performing the provided action on each element as elements are consumed from the resulting stream.

public List<MyObject> fetchMyObjects(Predicate predicate) {
return getMyListsOfTheDatabase(predicate)
.stream()
.peek(it -> if(it.getA() == null) it.setA(0.0))
.collect(Collectors.toList());
}

关于java - 使用 Java Streaming API 从 list.forEach 返回一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55395754/

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