一、继承结构
集合类存放于Java.util包中,主要有3种:set(集)、list(列表包含Queue)和map(映射)。
1.Collection:Collection是集合List、Set、Queue的最基本的接口。
2. Iterator:迭代器,可以通过迭代器遍历集合中的数据
3. Map:是映射表的基础接口
二、实现类
三、collection接口
是集合类的上层接口, 继承了Iterable接口, 其中包含了集合操作的基本方法和iterator()方法
常用方法:
boolean add(E e) | 向集合中添加一个元素。集合更改则添加成功返回true,如果该集合不允许重复并且已经包含指定的元素。返回false。部分子类的add方法可能会限制添加到集合中的元素类型,或者不会将NULL添加到集合中。 |
boolean addAll(Collection<? extends E> c) | 将指定集合中的所有元素添加到此集合中。在添加过程中如果被添加的集合发生了更改,addAll方法不具有幂等性。 |
void clear() | 清空掉集合中的所有元素 |
boolean contains(Object o) | 如果集合中包含指定元素那么返回true。特别的,如果集合中也包含NULL元素的时候并且要查找的元素也是NULL的时候也返回true。 |
boolean containsAll(Collection<?> c) | 如果该集合中包含指定集合中的所有元素的时候返回true。 |
boolean isEmpty() | 如果集合中没有元素返回true。 |
boolean remove(Object o) | 删除集合中的指定的元素。如果存在NULL,也删除。 |
boolean removeAll(Collection<?> c) | 删除当前集合中所有等于指定集合中的元素。 |
boolean retainAll(Collection<?> c) | 仅保留该指定集合中存在的所有元素。其余删除 |
int size() | 返回该集合中元素的个数。如果超过了Integer.MAX_VALUE,那么返回Integer.MAX_VALUE。 |
Object[] toArray() | 这个方法是集合和数组转化的桥梁。 见名知意,返回包含此集合中所有元素的数组。如果这个集合的迭代器保证元素有序,那么该方法与其迭代器中元素顺序一致。并且该方法返回的数组是拷贝出来的(某些集合底层数组实现,区别这个),可以进行任意的更改。 |
<T> T[] toArray(T[] a) | 该方法可以对返回的数组类型进行精确控制。而非像toArray方法一样返回Object[]。 返回集合中所有元素到该数组中。如果这个数组可以容纳下的话,否则返回一个新new的数组,容量和集合中元素数量一致。如果指定的数组容量大于集合中元素个数,数组空闲位置填NULL。如果这个集合的Iterator具有顺序性的话,数组元素顺序与该迭代器一致。 |
四、Iterator接口
Iterator迭代器在遍历集合时,在内部采用指针的方式跟踪集合中的元素。最初Iterator迭代器的指针位于第一个元素之前,然后迭代的调用next()方法从头至尾依次访问每一个元素,每访问一个元素,指针就越过该元素并定位于该元素和下一个元素之间,当访问完最后一个元素后,指针位于最后一个元素的后面。一般在调用next()方法之前先调用hasNext()方法判断下一个元素是否存在。
boolean hasNext() | 如果迭代器中还有元素那么返回true。 |
E next() | 返回迭代器中游标的下一元素 |
void remove() | 从迭代器指向的 collection 中移除迭代器返回的最后一个元素。每次调用 next 后只能调用一次此方法。如果进行迭代时用调用此方法之外的其他方式修改了该迭代器所指向的 collection,则迭代器的行为是不确定的。 |
五、Map接口
Map接口中键和值一一映射. 可以通过键来获取值。
- 给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值。
- 当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常.
- 当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常。
- 当在不允许使用Null对象的Map中使用Null对象,会抛出一个NullPointerException 异常。
- 当尝试修改一个只读的Map时,会抛出一个UnsupportedOperationException异常。
主要方法:
1 | void clear( ) 从此映射中移除所有映射关系(可选操作)。 |
2 | boolean containsKey(Object k) 如果此映射包含指定键的映射关系,则返回 true。 |
3 | boolean containsValue(Object v) 如果此映射将一个或多个键映射到指定值,则返回 true。 |
4 | Set entrySet( ) 返回此映射中包含的映射关系的 Set 视图。 |
5 | boolean equals(Object obj) 比较指定的对象与此映射是否相等。 |
6 | Object get(Object k) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。 |
7 | int hashCode( ) 返回此映射的哈希码值。 |
8 | boolean isEmpty( ) 如果此映射未包含键-值映射关系,则返回 true。 |
9 | Set keySet( ) 返回此映射中包含的键的 Set 视图。 |
10 | Object put(Object k, Object v) 将指定的值与此映射中的指定键关联(可选操作)。 |
11 | void putAll(Map m) 从指定映射中将所有映射关系复制到此映射中(可选操作)。 |
12 | Object remove(Object k) 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。 |
13 | int size( ) 返回此映射中的键-值映射关系数。 |
14 | Collection values( ) 返回此映射中包含的值的 Collection 视图。 |