List<Integer> list = new ArrayList<>();
list.add(12);
list.add(null);
list.add(22);
list.add(32);
System.out.println(list);
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()){
Integer a = iterator.next();
System.out.print(a+" ");
if(a.equals(32)){
iterator.remove();
}
}
O/p
[12, null, 22, 32]
12 null Exception in thread "main" java.lang.NullPointerException
at javed.collection.Collecting.main(Collecting.java:57)
尝试从 List 中删除任何包含 null 的元素会导致 NullPointerException 。 但可以轻松地从 List 中删除不包含 null 的元素。 我将整数与 null 进行比较是不是做错了什么?
如果我们不能从 List 中删除包含 null 的元素,那么为什么他们允许我们在 List 中添加 null,那它有什么用呢?
最佳答案
您应该添加空检查:
if(a != null && a.equals(32)) {
iterator.remove();
}
您还可以使用Objects.equals
这会为您进行空检查:
if(Objects.equals(a, 32)) {
关于java - 使用 Iterator 从 List 中删除包含 null 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29541183/