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
|
|