1.Collection接口
Collection接口是List、Set和Queue接口的父接口,该接口里定义的方法既可用于Set集合,也可以用于操作List和Queue集合
1、boolean add(Object o):添加一个新元素
2、boolean addAll(Collection c):把集合c的元素添加到指定集合
3、void clear():清除集合里面的所有元素
4、boolean contains(Object o):集合里面是否包含指定元素
5、boolean containsAll(Collection c):集合是否包含c里的所有元素
6、boolean isEmpty():长度为0则返回true
7、Iterator iterator():返回一个 Iterator 对象,用于遍历
8、boolean remove(Object o) / boolean removeAll(Collection c):移除一个/移除所有
9、boolean retainAll(Collection c):从集合中删除集合c里不包含的元素(交集)
10、Object[] toArray:把集合转化成数组
注:所有的Collection的实现类都重写了toString()
2.Iterator接口
Iterator则主要用于遍历Collection集合中的元素,Iterator对象称为迭代器。Iterator接口里定义了如下三个方法:
public class Test{
public static void main(String[] args) {
List list = new ArrayList();
String book1 = "Java";
String book2 = "Mysql";
list.add(book1);
list.add(book2);
Iterator iterator = list.iterator();
while (iterator.hasNext()){
String book = (String) iterator.next();
if(book.equals("Mysql")){
iterator.remove();
}
}
// 输出1
System.out.println(list.size());
}
}
Iterator仅用于遍历集合,Iterator本身并不提供盛装对象的能力。如果需要创建Iterator对象,则必须需要一个被迭代的集合。
当使用Iterator迭代访问Collection集合元素时,Collection集合里的元素不能被改变,只能通过Iterator的remove方法删除上一次next方法返回的集合元素才可以;否则将会引发java.util.ConcurrentModificationException异常。
注:当使用Iterator对集合元素进行迭代时,Iterator并不是把集合元素本身传给了迭代变量,而是把集合元素的值传给了迭代变量,所以修改迭代变量的值对集合元素本身没有影响。
附加:使用foreach循环遍历集合
public class Test{
public static void main(String[] args) {
List list = new ArrayList();
String book1 = "Java";
String book2 = "Mysql";
list.add(book1);
list.add(book2);
for (Object list1: list) {
if(list.equals("Mysql")){
list.remove(list1);
}
}
// 输出1
System.out.println(list.size());
}
}
注:foreach与Iterator接口访问集合元素类似的是,foreach循环中的迭代变量也不是集合元素本事,系统只是依次把集合元素的值赋值给迭代变量。