Collection的体系结构
Collection
|--List 元素可以重复,有序
|--ArrayList
底层数据结构是数组,查询快,增删慢
线程不安全,效率高。
|--Vector
底层数据结构是数组,查询快,增删慢
线程安全,效率低。
|--LinkedList
底层数据结构是链表,查询慢,增删快
线程不安全,效率高。
|--Set 元素唯一,无序
|--HashSet
底层数据结构是哈希表。
如果保证元素唯一性的呢?
它依赖于两个方法:hashCode和equals。
首先,判断哈希值是否相同,如果不同,就直接添加到集合中。
如果相同,在进入equals方法判断,
如果返回值是false,就添加进集合。
如果返回值是true,说明是重复元素,不添加到集合中。
|--TreeSet
底层数据结构是二叉树。
如果保证元素唯一性的呢?
根据Comparable接口的compareTo方法或者Comparator接口的compare方法的返回值是否为0,
来确定是否是重复元素。如果是0,就不添加元素。
排序:
让元素本身具备比较性:Comparable -- compareTo
让集合具备比较性:Comparator -- compare
|
|