集合框架的构成及分类
Collection常用的子接口:
List:元素是有序的,元素可以重复,因为该集合体系有索引。
Set:元素无序,元素不可以重复。
List常用的实现类:
ArraryList:底层使用的是数组数据结构。特点是:查询速度快,但增删速度慢。线程不同步。
LinkedList:底层使用的是链表数据结果。特点是:增删速度快,查询速度慢。线程不同步
Vector:底层使用的数据数据结构。线程同步,被ArraryList代替了。增删,查询速度都慢。
Set常用的实现类:
HashSet:底层使用的哈希表数据结构
HashSet通过hashCode和equals方法来保证元素的唯一性。如果元素的HashCode值相同才会判断equals是否为true,如果元素的
Hashcode值不同则不会调用equals方法。
TreeSet:底层使用的二叉树数据结构
可以对集合中的元素进行排序。底层通过二叉树来保证元素的唯一。
TreeSet排序的第一种方式:让元素自身具备比较性。元素需要实现Comparable接口,覆盖CompareTo方法。
TreeSet排序的第二种方式:当元素自身不具备比较性时,或者具备的比较性不是所需要的这时需要让容器自身具备比较性
定义比较器,将比较器对象作为参数传递给TreeSet集合的构造函数。
当两种排序都存在时以比较器为主。