List 有顺序 可重复 get set这些方法是List集合特有的.
|-----ArrayList 这个类在开发中使用的最多
底层使用数组实现,每次增长50% 查找效率高 插入与删除操作效率比较低
ArrayList是线程不安全
|-----LinkedList
底层使用链表实现 插入与删除效率比较高。
这个类中提供了对头尾元素进行操作的比较方便的方法.
LinkedList是线程不安全
|-----Vector
底层使用数组实现 每次增长100%
线程安全的.
无论执行查找还是添加与删除操作效率都比较低.
Set 无顺序,不可重复
|-----HashSet 这个在开发中用的比较多
底层实现使用Hash表 HashSet维护元素唯一性是使用元素的hashCode与equals方法.
|-----LinkedHashSet
它是一个有顺序有Set集合,如果要保证添加的顺序与取出的顺序一致可以使用这个Set集合.
|-----TreeSet
它的底层实现使用二叉树
TreeSet维护元素的唯一性使用的是什么?
1.使用元素自然顺序
维护元素的唯一性使用的Comparable接口中的compareTo方法进行维护
如果这个方法返回0,代表重复
2.使用比较器
维护元素的唯一性使用的Comparator接口中的compare方法
如果这个方法返回0,代表重复
要注意的是使用比较器时,必须在创建TreeSet对象时通过构造方法进行传参.
对于TreeSet与HashSet在开发中怎样选择?
如果在开发中想要对集合中的元素进行排序,那么使用TreeSet
|