概述
Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List、Set和Queue)通用的一些方法,这些方法可用于操作所有的单列集合。
共性的方法:
public boolean add(E e): | 把给定的对象添加到当前集合中 。 |
public void clear() : | 清空集合中所有的元素。 |
public boolean remove(E e): | 把给定的对象在当前集合中删除。 |
public boolean contains(E e): | 判断当前集合中是否包含给定的对象。 |
public boolean isEmpty(): | 判断当前集合是否为空。 |
public int size(): | 返回集合中元素的个数。 |
public Object[] toArray(): | 把集合中的元素,存储到数组中。 |
代码用例
import java.util.ArrayList;
import java.util.Collection;
public class Demo01Collection {
/*
java.util.Collection接口
所有单列集合的最顶层的接口,里边定义了所有单列集合共性的方法
任意的单列集合都可以使用Collection接口中的方法
*/
public static void main(String[] args) {
//创建集合对象,可以使用多态
Collection<String> coll = new ArrayList<>();
System.out.println(coll);//重写了toString方法 输出 []
/*
public boolean add(E e): 把给定的对象添加到当前集合中 。
返回值是一个boolean值,一般都返回true,所以可以不用接收
*/
boolean b1 = coll.add("张三");
System.out.println("b1:" + b1);//b1:true
System.out.println(coll);//[张三]
coll.add("李四");
coll.add("李四");
coll.add("赵六");
coll.add("田七");
System.out.println(coll);//[张三, 李四, 李四, 赵六, 田七]
/*
public boolean remove(E e): 把给定的对象在当前集合中删除。
返回值是一个boolean值,集合中存在元素,删除元素,返回true
集合中不存在元素,删除失败,返回false
*/
boolean b2 = coll.remove("赵六");
System.out.println("b2:" + b2);//b2:true
boolean b3 = coll.remove("赵四");
System.out.println("b3:" + b3);//b3:false
System.out.println(coll);//[张三, 李四, 李四, 田七]
/*
public boolean contains(E e): 判断当前集合中是否包含给定的对象。
包含返回true
不包含返回false
*/
boolean b4 = coll.contains("李四");
System.out.println("b4:" + b4);//b4:true
boolean b5 = coll.contains("赵四");
System.out.println("b5:" + b5);//b5:false
//public boolean isEmpty(): 判断当前集合是否为空。 集合为空返回true,集合不为空返回false
boolean b6 = coll.isEmpty();
System.out.println("b6:" + b6);//b6:false
//public int size(): 返回集合中元素的个数。
int size = coll.size();
System.out.println("size:" + size);//size:4
//public Object[] toArray(): 把集合中的元素,存储到数组中。
Object[] arr = coll.toArray();
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");//张三 李四 李四 田七
}
System.out.println(" ");
//public void clear() :清空集合中所有的元素。但是不删除集合,集合还存在
coll.clear();
System.out.println(coll);//[]
System.out.println(coll.isEmpty());//true
}
}
Collection接口遍历元素的方式
1.使用迭代器遍历(Iterator)
迭代器的基本介绍
- Iterator对象称为迭代器,主要用于遍历Collection集合中的元素
- 所有实现Collection接口的的集合类都有一个iterator()方法,用以返回一个实现Iterator接口的对象,即可以返回一个迭代器3).Iterator仅用于遍历集合,Iterator本身并不存放对象
迭代器的执行原理
1).通过Collection接口实现类的iterator()方法得到一集合的迭代器(Iterator)
Iterator iterator = list.iterator();
2).通过迭代器(Iterator)里的hasNext()方法判断集合是否有下一个元素,如果有返回true,否则返回false
while (iterator.hasNext()){
System.out.println(iterator.next());
}
3).通过迭代器(Iterator)里的next()方法返回指针下移后集合位置上的元素(next()方法作用是指针下移并且返回下移后集合位置上的元素)
4).原理图
5).代码演示
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//使用迭代器遍历集合
//1.先得到list集合的迭代器(Iterator)
Iterator iterator = list.iterator();
//2.使用while循环遍历
while (iterator.hasNext()){
//3.返回下一个元素
Object o = iterator.next();
System.out.println(o);//遍历完最终输出结果为:jack 10 true
}
}
2.使用增强for循环
增强for循环可以代替Iteratro迭代器。
1).基本语法
for(元素类型 元素名:集合名或数组名){
访问元素
}
2).代码演示
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//使用增强for循环遍历集合
for (Object o : list) {
System.out.println(o);
}
}
3).特点:
增强for循环就是简化版的Iterator迭代器,本质一样,只能用于遍历集合或数组