容器概述
Java容器类类库的用途是持有对象,分类:
- Collection:存储对象的集合
- Map:存储键值对对象,key唯一
| 接口 | 描述 |
|---|---|
| List | 按照插入顺序保存元素 |
| Set | 不能有重复元素 |
| Queue | 按照排队规则确定对象产生的顺序(通常与被插入顺序相同) |
| Map | 键值对 |

List
| 实现类 | 描述 |
|---|---|
| ArrayList | 基于动态数组实现,支持随机访问 |
| LinkedList | 基于双向链表实现,只能顺序访问,但可快速地在链表中间插入和删除元素,还可以用作栈、队列、双向队列 |
| Vector | 和ArrayList类似,但线程安全,唯一可以自我扩展的序列 |
Set
| 实现类 | 描述 |
|---|---|
| HashSet | 基于哈希表实现,查询速度快,但是不支持有序性操作 |
| LinkedHashSet | 继承自HashSet,具有HashSet的查找效率,内部使用双向链表维护元素的插入顺序 |
| TreeSet | 基于红黑树实现,支持有序性操作,但查询效率低 |
Queue
| 实现类 | 描述 |
|---|---|
| LinkedList | 用其实现双向队列 |
| PriorityQueue | 基于堆结构实现,用于实现优先队列 |
Map
| 实现类 | 描述 |
|---|---|
| HashMap | 基于散列表的实现,取代HashTable,允许空键值 |
| HashTable | 类似HashMap,但其线程安全,不允许空键值 |
| LinkedHashMap | 使用链表维护内部次序,遍历效率高 |
| TreeMap | 基于红黑树实现,有序,常用于排序(按照key) |
常用方法
| Collection(集合父接口) | 描述 |
|---|---|
| size() | 返回集合中的元素数 |
| isEmpty() | 集合不包含元素则返回true |
| contains(Object o) | 集合包含指定元素则返回true |
| iterator() | 返回集合中的元素迭代器,不保证顺序 |
| toArray() | 转换为数组 |
| add(E e)、remove(Object o) | 添加/删除一个元素,返回boolean值 |
| retainAll(Collection<?> c) | 从该集合中删除所有不包含在指定集合中的元素 |
| clear() | 从集合中删除所有元素 |
| List中增加的方法 | |
| get(int index) | 返回指定位置的元素 |
| set(int index,E element) | 替换指定位置的元素 |
| sort() | 排序,默认升序 |
| subList(int fromIndex, int toIndex) | 返回指定范围的list,[fromIndex, toIndex) |
| Map接口 | 描述 |
|---|---|
| size() | 返回map中键值映射的数量 |
| isEmpty() | 不包含键值映射,则返回true |
| containsKey(Object key) | 此映射包含指定键的映射,则返回true |
| containsValue(Object value) | 此映射将一个或多个键映射到指定的值,则返回true |
| get(Object key) | 返回此映射指定键所映射的值 |
| put(K key,V value) | 将指定值与键相关联 |
| remove(Object key) | 如果存在则删除键的映射 |
| putAll(Map<? extends K,? extends V> m) | 将指定映map的所有映射复制到此映射 |
| clear() | 删除所有映射 |
| keySet() | 返回map中所有键的Set视图 |
| values() | 返回map中所有值的collection视图 |
| entrySet() | 返回map中键值映射的set视图 |
| replace(K key,V value) | 替换 |
1535

被折叠的 条评论
为什么被折叠?



