【发布时间】:2013-12-09 16:08:16
【问题描述】:
我得到了两个由字符串组成的数组列表。我想比较它们,如果相同则返回 true,否则返回 false。
实现这一目标的最短和理想方法是什么?
编辑:两个列表的顺序应该相同。
【问题讨论】:
-
您到底想比较什么?
-
@ZongZhengLi 是的,我需要检查订单
我得到了两个由字符串组成的数组列表。我想比较它们,如果相同则返回 true,否则返回 false。
实现这一目标的最短和理想方法是什么?
编辑:两个列表的顺序应该相同。
【问题讨论】:
试试,
boolean isEqual= Arrays.deepEquals(list.toArray(), list2.toArray());
这也将返回true for Collection,如List<String[]> 或List<String[][]>,其中list.containsAll(list2) 将失败。
【讨论】:
你可以
return list1.equals(list2);
【讨论】:
如果您真的想检查它们是否包含完全相同的项目(并且您不关心重复项),那么您可以将两者都转换为集合:
return new HashSet<T>(list).equals(new HashSet<T>(list2))
【讨论】:
如果您想知道第一个列表的每个元素是否都在第二个列表中,您可以简单地使用containsAll() 方法。
【讨论】: