java - 如何检查列表中的列表是否不为空?

标签 java list

我有一个 Java 列表列表。这是代码:

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/

相关文章:

java - 在其他计算机上运行时导出的 .jar 给出 "No suitable driver found for jdbc"

c - 打印列表时省略最后一个逗号

c++ - 从列表中删除回调函数?

java - 丢失的比特去哪儿了?

java - LibGDX 文件未在 Android Studio 上首次加载

android - 使用在 Kotlin 中将列表作为参数的辅助构造函数创建 Parcelable 类

r - 选择 R 嵌套列表中的特定列

python - 大量列表列表的快速比较

java - Cordova 应用程序 - 在 Android 中使用铃声音量而不是媒体

java - 使用 SimpleDateFormat 解析 svn log -xml 日期输出