我有一个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/

10-11 22:22
查看更多