There are two basic Data Structures which are usually used:
1. Collection
List : ordered sequence of elements
--- ArraryList : implemented as a resizable array. for get & set ( select & update )
--- LinkedList : implemented as a double linked list. for add & remove ( insert & delete ) especially for batch
Set : unique elements
--- HashSet : disordered
--- TreeSet : ordered
Queue
Stack
2. Map
Each element in the Map contains a pair of key and values,key cannot be duplicated.
HashMap
TreeMap
接口 | 特性 | 实现类 | 实现类特性 | 成员要求 |
List | 线性、有序的存储容器,可通过索引访问元素 | ArrayList | 数组实现。非同步。 |
|
Vector | 类似ArrayList,同步。 |
| ||
LinkedList | 双向链表。非同步。 |
| ||
Map | 保存键值对成员 | HashMap | 基于哈希表的 Map 接口的实现,满足通用需求 | 任意Object对象,如果修改了equals方法,需同时修改hashCode方法 |
TreeMap | 默认根据自然顺序进行排序,或者根据创建映射时提供的 Comparator进行排序 | 键成员要求实现caparable接口,或者使用Comparator构造TreeMap。键成员一般为同一类型。 | ||
LinkedHashMap | 类似于HashMap,但迭代遍历时取得“键值对”的顺序是其插入顺序或者最近最少使用的次序 | 与HashMap相同 | ||
IdentityHashMap | 使用==取代equals()对“键值”进行比较的散列映射 | 成员通过==判断是否相等 | ||
WeakHashMap | 弱键映射,允许释放映射所指向的对象 |
| ||
ConcurrentHashMap | 线性安全的Map |
| ||
Set | 成员不能重复 | HashSet | 为快速查找设计的Set | 元素必须定义hashCode() |
TreeSet | 保持次序的Set,底层为树结构 | 元素必须实现Comparable接口 | ||
LinkedHashSet | 内部使用链表维护元素的顺序(插入的次序) | 元素必须定义hashCode() |