(1)addAll(Collection<? extends E> col)方法
addAll(Collection<? extends E> col)方法用来将指定集合中的所有对象添加到该集合中。如果对该集合进行了泛化,则要求指定集合中的所有对象都符合泛化类型,否则在编译程序时将抛出异常,入口参数中的“<? extends E>”说明了这个问题,其中的E为用来泛化的类型。
例如:
import java.util.*; public class TestCollection{ public static void main(String args[]){ String a = "A"; String b = "B"; String c = "C"; Collection<String> list1 = new ArrayList<String>(); list1.add(a);//通过add(E obj)方法添加指定的对象到集合中 list1.add(b); Collection<String> list2 = new ArrayList<String>(); list2.addAll(list1);//通过addAll(Collection<? extends E> col)方法添加指定集合中的所有对象到该集合中 list2.add(c); Iterator<String> it = list2.iterator();//通过iterator()方法序列化集合中的所有对象 while(it.hasNext()){ String s = it.next();//因为对实例it进行了泛化,所以不需要进行强制类型转换 System.out.println(s); } } }
程序运行结果如下:
A
B
C
注意:由于Collection是接口,不能直接对其进行实例化,而ArrayList类是Collection接口的间接实现类,因此可以通过ArrayList类实现Collection的实例化。
(2)removeAll(Collection<?> col)方法
removeAll(Collection<>> col)方法用来从该集合中移除同时包含在指定集合中的对象,与retainAll()方法正好相反。返回值为boolean型,如果存在符合移除条件的对象则返回True,否则返回False。
例如:
String a = "A"; String b = "B"; String c = "C"; Collection<String> list1 = new ArrayList<String>(); list1.add(a); list1.add(b); Collection<String> list2 = new ArrayList<String>(); list2.add(b);//注释该行,再运行 list2.add(c); boolean isContains = list1.removeAll(list2); System.out.println("是否存在符合移除条件的对象:"+isContains); Iterator<String> it = list1.iterator(); System.out.println("list1中的对象如下:"); while(it.hasNext()){ String s = it.next(); System.out.println(s); }
程序运行结果1:(没有注释掉list2.add(b);)
是否存在符合移除条件的对象:true
list1中的对象如下:
A
程序运行结果2:(注释掉了list2.add(b);)
是否存在符合移除条件的对象:false
list1中的对象如下:
A
B
(3)retainAll(Collection<?> col)方法
retainAll(Collection<?> col)方法仅保留该集合中同时包含在指定集合中的对象,其他的全部移除,与removeAll()方法正好相反。返回值boolean型,如果存在符合移除条件的对象则返回True,否则返回False。
例如:
String a = "A"; String b = "B"; String c = "C"; Collection<String> list1 = new ArrayList<String>(); list1.add(a);//注释该行,再运行 list1.add(b); Collection<String> list2 = new ArrayList<String>(); list2.add(b); list2.add(c); boolean isContains = list1.retainAll(list2); System.out.println("是否存在符合移除条件的对象:"+isContains); Iterator<String> it = list1.iterator(); System.out.println("list1中的对象如下:"); while(it.hasNext()){ String s = it.next(); System.out.println(s); }
程序运行结果1:(没有注释掉list1.add(a);)
是否存在符合移除条件的对象:true
list1中的对象如下:
B
程序运行结果2:(注释掉了list1.add(a);)
是否存在符合移除条件的对象:false
list1中的对象如下:
B
(4)containsAll(Collection<?> col)方法
containsAll(Collection<?> col)方法用来查看在该集合中是否存在指定集合中的所有对象。返回值为boolean型,如果存在则返回True,否则返回False。
例如:
String a = "A"; String b = "B"; String c = "C"; Collection<String> list1 = new ArrayList<String>(); list1.add(a); list1.add(b); Collection<String> list2 = new ArrayList<String>(); list2.add(b); list2.add(c);//注释该行,再运行 boolean isContains = list1.containsAll(list2); System.out.println("list1中是否存在list2中的所有对象:"+isContains);
程序运行结果1:(没有注释掉list2.add(c);)
list1中是否存在list2中的所有对象:false
程序运行结果2:(注释掉了list2.add(c);)
list1中是否存在list2中的所有对象:true
(5)toArray(T[] t)方法
toArray(T[] t)方法用来获得一个包含所有对象的指定类型的数组。toArray(T[] t)方法的入口参数必须为数组类型的实例,并且必须已经被初始化,它的作用是用来指定欲获得数组的类型,如果对调用toArray(T[] t)方法的实例进行了泛化,还要求入口参数的类型必须符合泛化类型。
例如:
String a = "A"; String b = "B"; String c = "C"; Collection<String> list1 = new ArrayList<String>(); list1.add(a); list1.add(b); list1.add(c); String s1[] = new String[1]; String s2[] = list1.toArray(s1); System.out.println("数组s2中的元素如下:"); for(int i=0;i<s2.length;i++){ System.out.println(s2[i]); }
程序运行结果如下:
数组s2中的元素如下:
A
B
C
转载请标明出处 http://blog.csdn.net/shimiso
技术交流群:361579846