在JAVA中专门设计了一组类,他们实现了各种各样的数据存储,这种专门用来存储其他对象的类,被称为容器类,这组类和接口的设计结构也被称为集合框架(Collection Framework)。
JAVA集合主要分为三种类型。
- Set(集):集合中的对象不按照特定顺序排序,不允许有重复对象。某些实现类可以对集合中对象按特定方式排序。
- List(列表):集合中的对象按照索引位置排序,允许有重复对象。List和数组有些相似。
- Map(映射):集合中每个元素包含一个键(Key)和一个值(Value),集合中的键不可以重复,值可以重复。
Collection和Iterator接口
在Collection接口中声明了适应于JAVA集合(包括Set和List)的通用方法,JDK不提供接口的任何直接实现,而是通过其更具体的子类(Set和List)实现。
Collection方法摘要
返回值 | 方法名 | 说明 |
---|---|---|
boolean | add(E e) | 确保此 collection 包含指定的元素(可选操作) |
boolean | addAll(Collection c) | 将指定 collection 中的所有元素都添加到此 collection 中(可选操作) |
void | clear() | 移除此 collection 中的所有元素(可选操作) |
boolean | contains(Object o) | 如果此 collection 包含指定的元素,则返回 true |
boolean | containsAll(Collection c) | 如果此 collection 包含指定 collection 中的所有元素,则返回 true |
boolean | equals(Object o) | 比较此 collection 与指定对象是否相等 |
int | hashCode() | 返回此 collection 的哈希码值 |
boolean | isEmpty() | 如果此 collection 不包含元素,则返回 true |
Iterator< E> | iterator() | 返回在此 collection 的元素上进行迭代的迭代器 |
boolean | remove(Object o) | 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作) |
boolean | removeAll(Collection< ?> c) | 移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作) |
boolean | retainAll(Collection< ?> c) | 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作) |
int | size() | 返回此 collection 中的元素数 |
Object[] | toArray() | 返回包含此 collection 中所有元素的数组 |
< T> T[] | toArray(T[] a) | 返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同 |
在Collection对象中并没有提供获取元素的方法。如果需要遍历Collection中的元素,一般采用Iterator遍历器。使用Iterator可以遍历集合中的各个对象元素。
Iterator方法摘要
返回值 | 方法名 | 说明 |
---|---|---|
boolean | hasNext() | 如果仍有元素可以迭代,则返回 true |
E | next() | 返回迭代的下一个元素 |
void | remove() | 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作) |
Map接口
Map接口不是Collection的子类,Map是一种把键对象和值对象进行映射的集合,它的每一个元素都包含了一对键对象和值对象。Map中不能有重复的键Map中存的键值对是通过键作为标识的。
Map方法摘要
返回值 | 方法名 | 说明 |
---|---|---|
void | clear() | 从此映射中移除所有映射关系(可选操作) |
boolean | containsKey(Object key) | 如果此映射包含指定键的映射关系,则返回 true |
boolean | containsValue(Object value) | 如果此映射将一个或多个键映射到指定值,则返回 true |
Set< Map.Entry> | entrySet() | 返回此映射中包含的映射关系的 Set 视图 |
boolean | equals(Object o) | 比较指定的对象与此映射是否相等 |
V | get(Object key) | 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null |
int | hashCode() | 返回此映射的哈希码值 |
boolean | isEmpty() | 如果此映射未包含键-值映射关系,则返回 true |
Set< K> | keySet() | 返回此映射中包含的键的 Set 视图 |
V | put(K key, V value) | 将指定的值与此映射中的指定键关联(可选操作) |
void | putAll(Map< ? extends K,? extends V> m) | 从指定映射中将所有映射关系复制到此映射中(可选操作) |
V | remove(Object key) | 如果存在一个键的映射关系,则将其从此映射中移除(可选操作) |
int | size() | 返回此映射中的键-值映射关系数 |
Collection< V> | values() | 返回此映射中包含的值的 Collection 视图 |
这一篇博客只是简单的介绍下JAVA集合框架,接下来的几篇博客中将逐一的介绍JAVA集合框架中常用的实现类。