我有两个数组列表。
如何使用Java 8及其特性轻松比较它们的相等性,而不使用外部库? 我正在寻找比类似于以下代码(未经测试的代码,可能包含拼写错误等问题,但不是问题的重点)更好的解决方案(更高级别,更短,更有效):
boolean compare(List<String[]> list1, List<String[]> list2)
{
// tests for nulls etc omitted
if(list1.size() != list2.size()) {
return false;
}
for(i=0; i<list1.size(); ++i) {
if(!Arrays.equals(list1.get(i), list2.get(i))) {
return false;
}
}
return true;
}
或者,如果没有更好的方法,那也是一个有效的答案。
奖励:如果Java 9提供了比Java 8更好的方法,请随意提及。
编辑:在查看评论并看到这个问题已经变得相当热门后,我认为"更好的方法"应该包括首先检查所有数组的长度,然后再检查数组内容,因为如果内部数组很长,这有可能更快地发现不等式。