Java Collection

来源:互联网 发布:少儿趣味编程课程 编辑:程序博客网 时间:2024/05/29 16:29

Java Collection 集合框架

List :元素有序,数组结构,可重复。
Set :元素无序,不可重复。保证数据的唯一性

List
–Vector :线程同步,数组数据结构,JDK1.0,无论添加元素还是删除元素,效率都慢。
–ArrayList :线程不同步,数组数据结构,JDK1.2替代了Vector,查找效率快,因为带有角标,
地址也是一片连续空间。数据量大的时候增删元素会稍慢。
–LinkedList : 线程不同步,链表数据结构,每个元素只会链住前后的元素,曾删效率快,查询效率会稍慢。

Set
–HashSet :哈希表数据结构,不可重复元素,会保证数据的唯一性,添加元素原理,首先会调用元素的hashCode方法
如果hashCode方法返回值相同,则会再去比较是否为同一个对象equals,如果返回true则次元素存不进去,
如果返回false,则代表元素的hash值是一样的,即位置是一样的,但元素的内容不一样,此时会在当前位置
向下顺延这个元素,元素会存进去。
如果hashCode返回值不一样,则此元素直接就存进去了。
每个元素的位置都是靠算法算出来的,所以元素无序也不难理解。
–LinkedHashSet :链表和哈希共同组成的数据结构,因为Set接口元素是无序的,当然HashSet也是无序的
而LinkedHashSet这个小弟正好弥补了这个不足,即保证了数据的唯一性,不出现重复元素,
而且也保证了元素的顺序,链表数组结构,带有元素角标。
–TreeSet :二叉树数据结构,此对象可以对元素进行排序。
1 :让元素自身具备比较性,需实现 Comparable 接口,覆盖comparaTo(Object o)方法,比较
当前对象大于等于小于此对象 返回 1 0 -1 。

            2 : 让接口具备比较性,扩展性好(优先选择),再构建 TreeSet 对象的时候传递一个 Comparator                  接口对象,实现compare(Object o1,Object o2)方法,比较当前对象大于等于小于此对象返回                  1 0 -1.