java集合框架结构1、总体结构
Map和Collection是分开的。Collection下有List Queue Set 3个接⼝。
2、List结构
3、Set结构
4、Queue结构
5、Map结构
6、Deque结构
7、常⽤的List
ArrayList: 数组实现,初始长度10,每次扩容增加0.5倍(0.5倍可以通过位移>>1操作完成);
最⼤长度Integer.MAX_VALUE , 并⾮Integer.MAX_VALUE - 8;
LinkedList:双向链表实现, 可⽤于栈队列实现。
线程安全:
Collections.synchronizedList(list)实现,
Vector也是线程安全的(过时不建议使⽤)
CopyOnwriteArrayList
8、常⽤的Set
HashSet:以HashMap实现的,只能存⼀个null值
LinkedHashSet:继承HashSet 可以按存⼊的顺序进⾏迭代。
TreeSet:以TreeMap实现内部按compareTo进⾏⽐较所有不能存null,否则空指针异常。ConcurrentHashSet(google guava实现)
9、常⽤的Queue
PriorityQueue : ⾮FIFO队列按优先级排序java集合排序怎么实现
线程安全:
ArrayBlockingQueue:数组实现阻塞队列需要指明初始⼤⼩,线程安全
LinkedBlockingQueue:列表实现阻塞队列,可以不指明初始⼤⼩,默认Integer.MAX_VALUE;线程安全ConcurrentLinkedQueue:链表实现不阻塞长度⽆限制;线程安全
PriorityBlockingQueue : 优先级队列线程安全版本
10、常⽤的Deque (双向队列可当做栈使⽤,深度遍历算法时可以使⽤)
ArrayDeque:动态数组长度是2的幂次⽅;作为栈时性能⽐LinkedList好;⾮线程安全
LinkedList:双向链表实现,⾮线程安全
线程安全:
ConcurrentLinkedDeque:链表实现
LinkedBlockingDeque:阻塞链表
栈的实现还有⼀个Stack类,继承Vector,线程安全(过时了不建议使⽤)
11、常⽤的Map
HashMap:只能存放⼀个null key
TreeMap: 不能存放null key
线程安全:
ConcurrentHashMap:线程安全
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论