我有一个Java list list 。这是代码:
List<List<Integer>> myList = new ArrayList<>();
myList.add(new ArrayList<Integer>());
myList.add(new ArrayList<Integer>());
myList.add(new ArrayList<Integer>());
myList.get(0).add(1);
myList.get(0).add(2);
myList.get(0).add(3);
myList.get(1).add(4);
myList.get(1).add(5);
myList.get(1).add(6);
myList.get(2).add(7);
myList.get(2).add(8);
myList.get(2).add(9);
现在,在我的代码的一部分中,我想检查
myList
中的所有三个列表是否都不为空且为null。我是否应该一个一个地检查每个列表,像这样:if (myList.get(0) != null && !myList.get(0).isEmpty()) {
// do something
}
...或者有更好,更短的方法来代替一一检查吗?
最佳答案
您可以为此使用流API,但也可以使用普通循环:
boolean allNonEmptyOrNull = myList.stream()
.allMatch(x -> x != null && !x.isEmpty());
或者您可以通过以下方式检查是否包含
null
或空白的List
:System.out.println(myList.contains(null) || myList.contains(Collections.<Integer> emptyList()));
但是,这最后一个选项将与Java 9不可变集合一起破坏,例如:
List.of(1, 2, 3).contains(null);
将抛出一个
NullPointerException
。关于java - 如何检查列表中的列表是否不为空?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52768755/