黑马程序员技术交流社区
标题:
List与Set
[打印本页]
作者:
wanghanqing
时间:
2016-9-6 22:14
标题:
List与Set
List: 接口,有序,可重复,带索引
ArrayList:数组结构,增删慢,查找快
LinkedList: 链表结构,增删快,查找慢,包含首尾操作的方法
Vector: 数组结构,增删慢,查找慢,安全!包含枚举的方法
常用方法:带索引的方法,记得越多越好
Set: 接口,不能重复,不带索引
HashSet:无序、不可重复,不带索引
LinkedHashSet:可预测迭代顺序、不可重复,不带索引
判断元素唯一性:
ArrayList的contains方法,会通过集合内元素的equals方法判断是否有重复元素。 用参数传进来的元素依次与老元素比较
HashSet的add方法在添加时,由于HashSet不能存放重复元素,所以会判断是否有重复元素。
判断规则:
先判断新元素与集合内已经有的旧元素的HashCode值
如果不同,判断元素不同。
如果相同,再判断equals比较结果,返回true则相同,返回false则仍然不同。
所以当我们不想通过地址值判断两个对象是否相同,而想通过对象的属性内容比较两个对象是否相同时,就需要重写hashCode与equals方法。
方法逻辑,参见Eclipse帮助重写的hashCode与equals方法 alt+shift+s
作者:
老爹很帅
时间:
2016-9-6 22:32
前几天刚学完,还是比较容易区分的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2