【发布时间】:2015-09-14 07:46:45
【问题描述】:
我有两个列表
List<MyData> listA = new ArrayList<MyData>() 和 List<MyData> listB = new ArrayList<MyData>() 都包含 MyData 类型的对象,MyData 包含这些变量。
Class MyData {
String name;
boolean val
}
我必须编写一个程序来比较两个数组列表是否相等,时间复杂度更小。我没有覆盖 Mydata 类中的 equals 和 hashcode,因为它是一个已经存在的类,修改可能会影响应用程序的不同行为。 我写的代码是
forEach(MyData a:listA ){
forEach(MyData b:listB ){
if(a.getName.equals(b.getName)){
}
}
}
【问题讨论】:
-
你能更好地定义 equal 吗?您是否希望项目在两个列表中的顺序相同,如果是这样,只需一个循环就足够了...
-
如果两个列表大小相同,您实际上可以使用单循环进行迭代