Collection接口
Java语言中,java.util.Collection 是集合框架的顶层框架之一
Collection是接口,不能构造对象,因此声明Collection类型的引用需指向该实现类的对象
在以后的开发中很少直接使用Collection接口,而是更多的使用该接口的子类:List接口,Queue接口,Set接口
常用方法
- boolean add(E e)
用于将参数指定的元素e放入当前集合中 - boolean addAll(Collection <? extends E>c)
用于将参数集合c中的所有元素放入当前集合中
//1.声明Collection类型的引用指向实现类的对象,形成多态
Collection c1 = new ArrayList();
//打印集合中的所有内容,自动调用ArrayList类中的toString()方法,默认打印格式为:[元素值1,元素值2,...]
System.out.println("c1 = " + c1); //打印结果为[]
//2.向集合中添加单个元素
boolean b1 = c1.add(new String("one"));
System.out.println("b1 = " + b1); //true
System.out.println("c1 = " + c1); //打印结果为[one]
//(先在该包中写一个Student类)
b1 = c1.add(new Student(1001,张三,20));
System.out.println("b1 = " + b1); //true
System.out.println("c1 = " + c1); //打印结果为[one,Student[id = 1001 ,name = 张三 ,age = 20]]
//3.实现将指定集合中的所有元素都放入当前集合中
//准备另外一个集合
Collection c2 = new ArrayList();
c2.add("two");
c2.add("2");
System.out.println("c2 = " + c2); //打印结果为[two,2]
//将集合从中的所有元素添加到c1中
//(1)把c2中的元素一个一个的放入c1中
c1.addAll(c2);
System.out.println("c1 = " + c1); //打印结果为[one,Student[id = 1001 ,name = 张三 ,age = 20],two,2]
//(2)把c2中的元素看成一个整体放入c1中
c1.add(c2);
System.out.println("c1 = " + c1); //打印结果为[one,Student[id = 1001 ,name = 张三 ,age = 20],[two,2]]
- boolean contains(Object o)
用于判断当前集合是否包含参数指定的单个元素 - boolean containsAll(Collection<?>c)
用于判断是否包含参数c中的所有元素
//判断c1中是否包含c2中的所有元素
b1 = c1.containsAll(c2);
System.out.println("b1 = " + b1);
// 判断c1中是否包含c2这个元素整体
b1 = c1.contains(c2);
System.out.println("b1 = " + b1);
- boolean remove(Object o)
用于将参数指定的单个元素从当前集合中删除 - boolean removeAll(Collection<?>c)
用于删除集合中 的所有元素 - void clear()
用于清空当前集合中的所有元素 - int size()
用于获取集合中的元素个数 - boolean retainAll(Collection<?>c)
— 用于计算调用对象和参数对象的交集并保留到当前集合中,覆盖原有数据
— 当前集合中的元素若发生改变则返回true,否则返回false
注:contains方法的执行原理:
(o == null ? = null : o.equals(e))其中o是形参变量,代表要查找的目标元素
(1)若查找的目标元素为null,则在判断当前集合中是否有一个元素为null即可
(2)若查找的目标元素不为null,则使用目标元素调用equals()方法与集合中的所有元素依次比较是否相等