我试着像那样绕圈
// ArrayList tourists
for (Tourist t : tourists) {
if (t != null) {
t.setId(idForm);
}
}
但这并不好。谁能给我一个更好的解决办法?
一些有用的基准可以帮助你做出更好的决定:
While循环,For循环和迭代器性能测试
我试着像那样绕圈
// ArrayList tourists
for (Tourist t : tourists) {
if (t != null) {
t.setId(idForm);
}
}
但这并不好。谁能给我一个更好的解决办法?
一些有用的基准可以帮助你做出更好的决定:
While循环,For循环和迭代器性能测试
当前回答
Objects类有一个非空谓词,可以与过滤器一起使用。
例如:
tourists.stream().filter(Objects::nonNull).collect(Collectors.toList());
其他回答
有一种简单的方法可以从集合中删除所有空值。必须将包含null的集合作为参数传递给removeAll()方法
List s1=new ArrayList();
s1.add(null);
yourCollection.removeAll(s1);
我摆弄了一下,发现trimToSize()似乎可以工作。我是在Android平台上工作,所以可能会有所不同。
效率不高,但时间短
while(tourists.remove(null));
Objects类有一个非空谓词,可以与过滤器一起使用。
例如:
tourists.stream().filter(Objects::nonNull).collect(Collectors.toList());
我们可以使用迭代器for the same删除所有空值。
Iterator<Tourist> itr= tourists.iterator();
while(itr.hasNext()){
if(itr.next() == null){
itr.remove();
}
}