Java 集合可分为 Collection 和 Map 两种体系
Collection接口:单列数据,定义了存取一组对象的方法的集合
List:元素有序、可重复的集合
List中较为常用的是ArrayList
Set:元素无序、不可重复的集合(不会维护插入数据的顺序)
Map接口:双列数据,保存具有映射关系“key-value对”的集合
Map中较为常用的是HashMap
Collection 接口中的常用方法:
Collection c1 = new ArrayList();
Collection c2 = new ArrayList();
1、添加
add(Object obj) c1.add(1) ;
addAll(Collection coll)
2、获取有效元素的个数
int size()
3、清空集合
void clear()
4、是否是空集合
boolean isEmpty()
5、是否包含某个元素
boolean contains(Object obj):调用的集合是否包含了参数的元素。
boolean containsAll(Collection c):比较调用的集合是否包含参数集合里面的所有元素。
6、删除
boolean remove(Object obj) :通过元素的equals方法判断是否是要删除的那个元素。只会删除找到的第一个元素
boolean removeAll(Collection coll):取当前集合的差集
boolean retainAll(Collection c):取两个集合的交集,把交集的结果存在当前集合中,不影响c
7、集合中的元素是否相等
boolean equals(Object obj)
8、转成对象数组
Object[] toArray()
9、获取集合对象的哈希值
hashCode()
10、遍历
iterator():返回迭代器对象,用于集合遍历
Iterator迭代器接口:
注意:
使用迭代器在迭代的过程中如果对集合进行add、remove操作都会抛出 ConcurrentModificationException 快速失败异常(fast - fail)。若要进行删除操作可使用Iterator接口中重写的remove()方法
但是注意:
1、Iterator可以删除集合的元素,但是是遍历过程中通过迭代器对象的remove方法,不是集合对象的remove方法。
2、remove方法的调用应该在方法next后面, 否则会报IllegalStateException异常
3、remove方法不能重复调用,否则会报IllegalStateException异常
4、Iterator迭代器基于面向接口编程思想,集合获取的迭代器是每个集合类的内部类