我有两个数组列表。
如何在不使用外部库的情况下轻松地将它们与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可以提供的更好的方法,请随时提一下。
编辑:在查看评论并查看此问题如何变得中等热点之后,我认为“更好”应包括在检查数组内容之前首先检查所有数组的长度,因为如果有内部的话,它有可能更快地找到不等式数组很长。