Collection 是所有集合类的父接口,它定义了集合类最基本的操作方法:
增加对象:boolean add(E e) 增加成功则返回true; 若对象已存在,且该集合不允许包含重复元素,则返回false。
删除对象:boolean remove(Object o) 删除集合中与对象o值相等的元素(e.equals(e)==true)
由于List允许允许元素重复,只删除与o相等的第一个元素。
boolean removeAll(Collection<?> c) 删除与c集合中所有对象相等的元素
void clear(); 清除集合中的所有元素,size = 0
判断对象:boolean contains(Object o) 判断集合中所有e.equals(e)==true的元素,并返回true。否则返回false。
boolean containsAll(Collection<?> c) 判断集合c是否是调用集合的子集。
保留交集:boolean retainAll(Collection<?> c) 删除在调用集合在c中不存在的元素,只保留与c的交集
转化为数组:Object[] toArray()
<T> T[] toArray(T[] a)
集合长度:int size() 获取集合的长度
迭代对象:Iterator<E> iterator()
迭代器: 就是一个Iterator接口的子类对象,封装了取出其绑定集合的元素的方式。
步骤: 1、通过调用集合的 Iterator iterator()方法返回该集合的迭代器,
2、将此迭代器赋值给 一个 Iterator 型对象引用。
3、通过此引用,调用迭代器的方法操作集合:
1)、boolean hasNext():如果集合中任有元素可以迭代,则返回true。
2)、Object next():返回迭代的下一个元素(列表中还在)。
3)、void remove():从迭代器指向的集合中 移除 迭代器返回的最后一个元素。
注意:你不能同时用迭代器和集合同时去操作同一组元素, 有可能会抛出并发异常。
原因:迭代器已经创建, 之后通过集合方法操作的元素过程(比如说增加),迭代器并不知道集合做了什么操作,还是只能按照原来的元素列表操作,就会发生错误。
*** 在迭代的时候要删除元素,只能通过iterator.remove()方法,不可以用集合的remove()。