我们如何比较两个数组列表的值,例如:
ArrayList a = new ArrayList<String>();
a.add("1");
a.add("2");
a.add("3");
ArrayList b = new ArrayList<String>();
b.add("3");
b.add("2");
b.add("1");
System.out.println(areEqual(a, b));
Run Code Online (Sandbox Code Playgroud)
应该打印为true,因为a的所有值都在b中.
提前致谢
Jon*_*on7 10
列表界面包含此功能boolean containsAll(Collection<?> c),似乎可以执行您想要的操作.
http://download.oracle.com/javase/6/docs/api/java/util/List.html#containsAll(java.util.Collection)
if ( a.containsAll(b) && (a.size() == b.size() ) )
Run Code Online (Sandbox Code Playgroud)
编辑:如果a包含的元素多于b,则containsAll仍将返回true,因此如果要测试绝对相等,则需要进行大小比较.
编辑#2:这假设a和b包含唯一条目.如果有像@Robin和@Matti所提到的重复,那么根据OP的相等定义,它会复杂得多.