我试着像那样绕圈

// ArrayList tourists

for (Tourist t : tourists) {
    if (t != null) {     
        t.setId(idForm); 
    }   
}

但这并不好。谁能给我一个更好的解决办法?


一些有用的基准可以帮助你做出更好的决定:

While循环,For循环和迭代器性能测试


当前回答

这是从数组列表中删除默认空值的简单方法

     tourists.removeAll(Arrays.asList(null));  

从数组列表中删除字符串值“null”

       tourists.removeAll(Arrays.asList("null"));  

其他回答

类似于@Lithium的答案,但不抛出“列表可能不包含类型null”错误:

   list.removeAll(Collections.<T>singleton(null));

效率不高,但时间短

while(tourists.remove(null));

Try:

tourists.removeAll(Collections.singleton(null));

阅读Java API。代码将为不可变列表抛出java.lang.UnsupportedOperationException(例如使用Arrays.asList创建的列表);更多细节请看这个答案。

 for (Iterator<Tourist> itr = tourists.iterator(); itr.hasNext();) {
      if (itr.next() == null) { itr.remove(); }
 }

这是从数组列表中删除默认空值的简单方法

     tourists.removeAll(Arrays.asList(null));  

从数组列表中删除字符串值“null”

       tourists.removeAll(Arrays.asList("null"));