分类:
具体继承,实现:
ArrayList:
(都实现Iterable<T> 接口,之后不计入图片)
LinkedList:
Vector:
HashSet:
LinkedHashSet:
TreeSet:
Collection集合体系特点:
List: 添加的元素是有序,可重复,有索引的。
ArrayList:添加的元素是有序,可重复,有索引的。
LinkedArray:添加的元素是有序,可重复,有索引的。
Vector: 是线程安全的,速度慢。
Set: 添加的元素是无序,不可重复,无索引的。
HashSet:添加的元素,无序,不可重复,无索引。
LinkedHashSet:添加的元素,有序,不可重复,无索引。
TreeSet:添加的元素,不可重复,无索引,按升序排列。
Set和List都继承Conllection接口,两种集合都重写了父类的方法,查看Collection的api方法如下:
ArrayList(数组):一般常用方法为增删改查,更多方法查看api
LinkedList(链表):
HashSet:
LinkedHashSet:继承HashSet,方法和HashSet一样
TrssSet:
由于TreeSet是默认升序排列的,当TrssSet泛型是基本数据类型是不会报错,当泛型是引用数据类型时,编译时会报错,因此TreeSet有两种自定义比较器。
1,类实现comparable<T>接口,重写compareTo方法
this对象-被比较对象升序,反之降序
2,采用匿名内部类方法在创建Set是重写comparetor
注意:如果两个比较器都存在,会优先选择第二种方法。
拓展:Set集合无序的原因:(图片来源黑马程序员视频)