我正试着围绕java8流来思考,想知道是否有人能帮我解决这个问题。
在古 java ,
List<Obj> newObjs = ArrayList<Obj>();
for (Obj obj : objects){
if(obj == null){
logger.error("null object");
}
else{
newObjs.add(...)
}
}
基本上,我想过滤空对象并记录它。在Java8中,有什么好方法可以做到这一点?
我正试着围绕java8流来思考,想知道是否有人能帮我解决这个问题。
在古 java ,
List<Obj> newObjs = ArrayList<Obj>();
for (Obj obj : objects){
if(obj == null){
logger.error("null object");
}
else{
newObjs.add(...)
}
}
基本上,我想过滤空对象并记录它。在Java8中,有什么好方法可以做到这一点?
2条答案
按热度按时间lx0bsm1f1#
你可以用
peek
在里面放一个if语句:但是这种类型会失去流的简洁性,所以我个人还是会使用一个普通的for循环来实现一些简单的事情,比如“过滤空值并收集到一个列表”。
请记住,流不会取代for循环。不要仅仅因为流是新的和闪亮的就使用它。
vcudknz32#
我建议把这种逻辑换成不同的方法
然后把名单流出来