如何检查列表中的列表是否具有相同的长度

hel*_*len 2 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);
Run Code Online (Sandbox Code Playgroud)

如何检查myList中存在的列表是否具有相同的长度?我知道我可以通过类似的myList.get(0).size()方式检查每个列表的长度,那么检查所有这些列表是否具有相同长度(而不是逐个检查)的有效且简短的方法是什么?

dav*_*xxx 8

您可以Stream.allMatch()通过将任何包含的列表大小(例如第一个)与所有其他包含的列表进行匹配来使用:

boolean isSameLength = 
myList.stream()
      .allMatch(l -> l.size() == myList.get(0).size())
Run Code Online (Sandbox Code Playgroud)

它使第一次比较无助,因为它比较了相同的包含列表,但它更具可读性:

boolean isSameLength = 
myList.stream()
      .skip(1)
      .allMatch(l -> l.size() == myList.get(0).size())
Run Code Online (Sandbox Code Playgroud)