java集合分类
Posted 阿水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java集合分类相关的知识,希望对你有一定的参考价值。
Java集合分类:
- List
- Set
- Map
- Queue
- 数组
- 工具类
- 扩展类
List:
- ArrayList :动态数组。
- LinkedList:双向链表。
- Vector:线程安全的动态数组。
- Stack:对象栈,遵循先进后出的原则。
Set:
- EnumSet:枚举类型专用Set,所有元素都是枚举类型。
- HashSet:以哈希码决定元素位置的set
- TreeSet:插入时会自动排序的set,但是如果中途修改元素大小,则不会再修改后重新排序,只会在插入时排序。
Map:
- TreeMap :自动排序map,根据key值自动排序。
- HashMap:Entry数组,以key的哈希码决定元素位置,所以,要保证key的哈希码不一致,如果碰到值不同但哈希码相同的key,会以单向链表扩展
- HashTable:线程安全的
- Properties:HashTable的子类,从Property文件中加载数据,并提供方便的读写操作。
- EnumMap:Key必须是枚举类型。
Queue:
- 阻塞式队列,满了以后再插入元素会抛出异常;
- ArrayBlockingQueue :以数组方式实现。
- PriorityBlockingQueue:依照优先级组件的队列。
- LinkedBlockingQueue:通过链表实现。
- 非阻塞队列,无边界,只要内存允许,可以持续追加。
- PriorityQueue
- 双端队列,支持在头尾两端插入和移除元素。而上面的阻塞队列和非阻塞队列都时单端队列,只能在一端插入,另一端删除。
- ArrayDeque
- LinkedBlockingDeque
- LinkedList
工具类:
- 数组工具类
- java.util.Arrays
- java.lang.reflect.Array
- 集合工具类
- java.util.Collections
扩展类:
可以自己写一个List,或使用第三方实现例如:
- Apache的Commons-collections扩展包
- Google的google-collections扩展包
以上是关于java集合分类的主要内容,如果未能解决你的问题,请参考以下文章