Java 流:如何避免在 Collectors.toList() 中添加空值?
Java Stream: How to avoid add null value in Collectors.toList()?
有一些Java代码:
List<Call> updatedList = updatingUniquedList
.stream()
.map(s -> {
Call call = callsBufferMap.get(s);
}
return call;
}).collect(Collectors.toList());
如果调用变量为空,如何避免避免添加到最终列表?
您可以在 map
之后和 collect
之前使用 .filter(o -> o != null)
。
.filter(Objects::nonNull)
收集之前。或者用 if.
将其重写为简单的 foreach
顺便说一句,你可以做到
.map(callsBufferMap::get)
您可以使用几个选项:
- 在流中使用非空方法:
.filter(Objects::nonNull)
- 使用列表的 removeIf:
updatedList.removeIf(Objects::isNull);
例如,这些行可能如下所示:
List<Call> updatedList = updatingUniquedList
.stream()
.map(callsBufferMap::get)
.filter(Objects::nonNull)
.collect(Collectors.toList());
也许你可以这样做:
Collectors.filtering(Objects::nonNull, Collectors.toList())
有一些Java代码:
List<Call> updatedList = updatingUniquedList
.stream()
.map(s -> {
Call call = callsBufferMap.get(s);
}
return call;
}).collect(Collectors.toList());
如果调用变量为空,如何避免避免添加到最终列表?
您可以在 map
之后和 collect
之前使用 .filter(o -> o != null)
。
.filter(Objects::nonNull)
收集之前。或者用 if.
将其重写为简单的 foreach顺便说一句,你可以做到
.map(callsBufferMap::get)
您可以使用几个选项:
- 在流中使用非空方法:
.filter(Objects::nonNull)
- 使用列表的 removeIf:
updatedList.removeIf(Objects::isNull);
例如,这些行可能如下所示:
List<Call> updatedList = updatingUniquedList
.stream()
.map(callsBufferMap::get)
.filter(Objects::nonNull)
.collect(Collectors.toList());
也许你可以这样做:
Collectors.filtering(Objects::nonNull, Collectors.toList())