java容器一:Collection概述
Collection概览
java容器有两类,第一类是Collection,存储的是对象的集合;第二类是Map,存储的是键值对(两个对象以及它们之间的对应关系)的集合
Collection接口下面有三个子接口:Set、List、Queue
Set:存储的元素无序、不允许重复
1、TreeSet:用红黑树实现,支持有序性操作,读取设置元素的代码复杂度为O(logN)
2、HashSet:用哈希表实现,但是不能维护对象插入顺序,读取元素的代码复杂度为O(1)
3、LinkedHashSet:用哈希表实现,且内部用一个链表来维持对象插入顺序
List:存储的元素有序,允许重复
1、ArrayList:动态数组实现,非线程安全,支持下标随机访问,增加和删除元素都要移动其他元素
2、Vector:和ArrayList内部实现基本相同,但是为方法都加了synchronize控制,因此是线程安全的,但是读写效率比ArrayList低
3、LinkedList:双向链表实现,不支持随机访问,增加和删除元素方便,读取元素需遍历。同时LinkedList还实现了Queue接口,因此也可以做栈、队列、双向队列使用
Queue:存储的元素有序且按照先进先出的特点,允许重复
1、LinkedList
2、PriorityQueue:不是按照队列的插入顺序来确定先进先出顺序
相关文章