黑马程序员技术交流社区

标题: collection集合的疑问 [打印本页]

作者: 匿名    时间: 2011-9-18 04:46
这个问题是因为ArrayList和HashSet的数据结构不同造成的,ArrayList是把每个元素作为数组的方式存放的,而HashSet存储是用Hashmap存储每个元素的hashcode值(这样可以唯一确定一个元素),所以当你在调用contains方法时,ArrayList是调用元素的equals方法也就是你重写的那个equals方法,如果存在相同的元素就返回true,否则返回false;而HashSet则是比较两个对象的hashcode值,如果hashcode值相同就返回true,否则返回false。
作者: 匿名    时间: 2011-9-18 07:32
标题: 回复 楼主 的帖子
ArrayList里面的值可以重复,而Hashset里面的值,由哈希算法算法并分配到一个唯一的位置,所以不能重复。
作者: 匿名    时间: 2011-9-18 08:19
标题: 回复 楼主 的帖子
首先同意二楼的说法。。。List接口是有序可重复,而Set接口是无序不可重复的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2