黑马程序员技术交流社区
标题:
ArrayList存储自定义元素复写的equals方法是在什么时候被调.....
[打印本页]
作者:
18334705181
时间:
2015-1-3 00:49
标题:
ArrayList存储自定义元素复写的equals方法是在什么时候被调.....
ArrayList存储自定义元素复写的equals方法是在什么时候被调用的?
作者:
Jason996
时间:
2015-1-3 23:34
是在遍历ArrayList元素时,通过判断来实现的。
Iterator it = array.iterator();
while (it.hasNext()) {
Student s = (Student) it.next();
// 在新集合中判断,看是否存在这个元素
if (!array2.
contains
(s)) {
// 如果s不再array2中存在,就添加
array2.add(s);
}
}
contains的底层源码就是依靠equals来实现的。所以要重写equals()
作者:
独自的旅程
时间:
2015-1-5 22:05
如果你想往ArrayList中存入自定义的不重复的对像时,可以通过自定义来判断相同对像条件。由于contains remove方法都是调用equals方法来判断的,所以equals方法这时被自动调用。
作者:
chudaming213
时间:
2015-1-6 20:52
只有需要比较两个元素相同与否时才被调用吧。List集合不同于Set集合,List集合中的元素可以重复,所以在向其中增加元素的时候并不需要判断元素重复与否,也就是不需要调用equals方法的,而set集合就不一样了,存放在其中的元素是不能重复的,所以在向其中添加元素的时候就需要调用equals方法比较两个元素是否相同。一般情况下需要重写equals方法和compare方法,以保证元素的唯一性。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2