String
类型 | 线程安全 | 效率 | 使用要点 |
String | 否 | 高 |
不能修改,建议直接使用=“XXX”方式赋值。 使用concat进行加长操作。 |
StringBuffer | 是 | 低 |
可以修改。 使用append进行加长操作。 |
StringBuilder | 否 | 高 |
可以修改。 使用append进行加长操作。 |
List
类型 | 线程安全 | 效率 | 使用要点 |
ArrayList | 否 |
删除插入操作少时推荐使用。 遍历时使用get接口速度快。 |
|
LinkedList | 否 |
删除插入操作多时使用。 遍历时使用迭代器或foreach速度快。 |
|
Vector | 是 | 是ArrayList的多线程版。 | |
Stack | 是 | 先进后出 |
Set
Set是不重复的集合
类型 | 线程安全 | 效率 | 使用要点 |
SortedSet | |||
HashSet | |||
TreeSet | |||
EnumSet |
Map
类型 | 线程安全 | 效率 | 使用要点 | ||
HashMap | 否 | 高 | 快速失败 | key和value可以接受null值 | HashMap不能保证随着时间的推移Map中的元素次序是不变的 |
HashTable | 是 | 中 | 是HashMap的多线程版。 | key和value不可以接受null值 | |
ConcurrentHashMap | 是 | 高 | 是 | Java 5或以上的话,请使用ConcurrentHashMap | |
Properties | 是 |
是HashTable子类 |
|||
EnumMap |
Queue
类型 | 线程安全 | 阻塞 | 固定大小 | 效率 | 使用要点 |
ArrayBlockIngQueue | 是 | 是 |
add:如果队列满,返回异常 offer:如果队列满,返回false pu:直到成功添加才返回 remove: poll: take: |
||
PriorityBlockingQueue | 是 | ||||
LinkedBlockIngQueue | 是 |
|
|||
PriorityQueue |
否 | ||||
ArrayDeque | |
||||
LinkedBlockingDeque | |||||
LinkedList |
数组
能容纳基本类型,集合不行。
工具类:
java.util.Arrays
java.long.reflect.Array
java.util.Collections