补充以上优秀回答,对于这种情况,拥有“equals”或“hashCode”方法是有意义的:
Collection<Whatever> list1 = getArrayList();
Collection<Whatever> list2 = getAnotherArrayList();
if(list1.equals(list2)){
// do something
}
在接口中没有equals
方法的情况下,我们将被迫使用具体类型,这通常不是一个好习惯:
ArrayList<Whatever> list1 = getArrayList();
ArrayList<Whatever> list2 = getAnotherArrayList();
if(list1.equals(list2)){
// do something
}