Collection:是集合中的顶层接口,它存在由它扩展开来的继承体系,为什么要分出很多不同的集合? 根据元素是否唯一,是否有序来区分这么多集合(后面的课程中会一一介绍)
Collection:
boolean add(Object obj) 确保此集合包含指定的元素(可选操作)。 boolean addAll(Collection c) 将指定集合中的所有元素添加到此集合(可选操作)。
boolean remove(Object o) 从该集合中删除指定元素的单个实例(如果存在)(可选操作)。 boolean removeAll(Collection<?> c) 删除指定集合中包含的所有此集合的元素(可选操作)。 void clear() 从此集合中删除所有元素(可选操作)。
Iterator<E> iterator() 返回此集合中的元素的迭代器。
boolean contains(Object o) 如果此集合包含指定的元素,则返回 true 。 boolean containsAll(Collection<?> c) 如果此集合包含指定 集合中的所有元素,则返回true。 boolean isEmpty() 如果此集合不包含元素,则返回 true 。
int size() 返回此集合中的元素数。
boolean retainAll(Collection<?> c) 仅保留此集合中包含在指定集合中的元素(可选操作)。
Object[] toArray() 返回一个包含此集合中所有元素的数组。
Collection是接口,List也是接口,ArrayList才是类,想实例化一个Collection接口就需要用到 ArrayList类来实现。
public class CollectionDemo1 { public static void main(String[] args) { //通过子类的形式创建对象,这叫接口多态 Collection c = new ArrayList(); //boolean add(Object obj) 确保此集合包含指定的元素(可选操作)。返回值为boolean类型,true代表成功添加 System.out.println(c.add("hello")); System.out.println(c.add("hello"));//说明ArrayList可以有重复的元素 c.add(20);//Collection接口里面做了自动装箱,把int类型的数据自动转换成了Integer类型 c.add(12.34); //void clear() //从此集合中删除所有元素(可选操作)。 // c.clear(); //boolean remove(Object o) //从该集合中删除指定元素的单个实例(如果存在)(可选操作)。 //只移除一个符合条件的 System.out.println("从该集合中删除指定元素" + c.remove("hello")); //boolean contains(Object o) //如果此集合包含指定的元素,则返回 true 。 System.out.println(c.contains("hello")); //boolean isEmpty() //如果此集合不包含元素,则返回 true 。 System.out.println(c.isEmpty()); //获取长度功能int size() // 返回此集合中的元素数。 System.out.println(c.size()); //String toString() //返回此集合的字符串表示形式。 AbstractCollection类中的toString()方法 //ArrayList本身是,没有toString方法的,而是继承了AbstractList类里面的方法 /** * java.lang.Object * java.util.AbstractCollection<E> * java.util.AbstractList<E> * java.util.ArrayList<E> */ System.out.println("集合c: " + c); } }
boolean addAll(Collection c) boolean类型 把c2添加到c1中 boolean removeAll(Collection c) boolean类型 移除c1中与c2有交集的元素 boolean containsAll(Collection c) boolean类型 判断c1中是否包含c2的全部元素 boolean retainAll(Collection c) boolean类型 保留c1中与c2有交集的元素
public class CollectionDemo2 { public static void main(String[] args) { //创建一个集合对象 Collection c1 = new ArrayList(); //向集合中添加元素 c1.add("hello"); c1.add("world"); c1.add("java"); c1.add("hadoop"); c1.add("hive"); // c1.add("spark"); //定义另一个集合 Collection c2 = new ArrayList(); c2.add("hello"); c2.add("world"); c2.add("hive"); c2.add("spark"); System.out.println("c1: "+c1); System.out.println("c2: "+c2); System.out.println("==============================="); //boolean addAll(Collection c) // System.out.println("将c2添加到从c1中:"); // System.out.println(c1.addAll(c2)); // System.out.println("c1: "+c1); // System.out.println("c2: "+c2); // System.out.println("==============================="); //boolean removeAll(Collection c) 删除指定集合中包含的所有此集合的元素(可选操作)。 // 此调用返回后,此集合将不包含与指定集合相同的元素。 // System.out.println(c1.removeAll(c2)); // System.out.println("c1: "+c1); // System.out.println("c2: "+c2); // System.out.println("==============================="); // //boolean containsAll(Collection c)如果此集合包含指定 集合中的所有元素,则返回true。 // System.out.println(c1.containsAll(c2)); System.out.println("==============================="); //boolean retainAll(Collection c) //仅保留此集合中包含在指定集合中的元素(可选操作)。 // 换句话说,从该集合中删除所有不包含在指定集合中的元素。 //假设有两个集合 c1,c2 //c1对c2做交集,最终的结果保存在c1中,c2不变 //并且c1中删除与c2不是共同的其他元素 // System.out.println(c1.retainAll(c2)); // System.out.println("c1: "+c1); // System.out.println("c2: "+c2); } }