我有一个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()方式检查每个列表的长度,那么检查所有这些列表是否具有相同长度(而不是逐个检查)的有效且简短的方法是什么?
您可以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)