集合框架——Collection

      Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用,不过Collection接口中定义了一些通用的方法,通过这些方法可以实现对集合的基本操作,因为List接口和Set接口继承了Collection接口,所以这些方法对List集合和Set集合是通用的,Collection接口定义的常用方法及功能如下表1所示:



1. addAll(Collection<? extends E> col)方法 
      addAll(Collection<? extends E> col)方法用来将指定集合中的所有对象添加到该集合中。如果对该集合进行了泛化,则要求指定集合中的所有对象都符合泛化类型,否则在编译程序时将抛出异常,入口参数中的“<? extends E>”说明了这个问题,其中的E为用来泛化的类型。
例如:

Java代码 复制代码
  1. import java.util.*;   
  2. public class TestCollection{   
  3.     public static void main(String args[]){   
  4.         String a = "A";   
  5.         String b = "B";   
  6.         String c = "C";   
  7.         Collection<String> list1 = new ArrayList<String>();   
  8.         list1.add(a);//通过add(E obj)方法添加指定的对象到集合中   
  9.         list1.add(b);   
  10.         Collection<String> list2 = new ArrayList<String>();   
  11.         list2.addAll(list1);//通过addAll(Collection<? extends E> col)方法添加指定集合中的所有对象到该集合中   
  12.         list2.add(c);   
  13.         Iterator<String> it = list2.iterator();//通过iterator()方法序列化集合中的所有对象   
  14.         while(it.hasNext()){   
  15.             String s = it.next();//因为对实例it进行了泛化,所以不需要进行强制类型转换   
  16.             System.out.println(s);   
  17.         }   
  18.     }   
  19. }  


程序运行结果如下:
A
B
C
 
      注意:由于Collection是接口,不能直接对其进行实例化,而ArrayList类是Collection接口的间接实现类,因此可以通过ArrayList类实现Collection的实例化。


2. removeAll(Collection<?> col)方法 
      removeAll(Collection<>> col)方法用来从该集合中移除同时包含在指定集合中的对象,与retainAll()方法正好相反。返回值为boolean型,如果存在符合移除条件的对象则返回True,否则返回False。
例如:

Java代码 复制代码
  1. String a = "A";   
  2. String b = "B";   
  3. String c = "C";   
  4. Collection<String> list1 = new ArrayList<String>();   
  5. list1.add(a);   
  6. list1.add(b);   
  7. Collection<String> list2 = new ArrayList<String>();   
  8. list2.add(b);//注释该行,再运行   
  9. list2.add(c);   
  10. boolean isContains = list1.removeAll(list2);   
  11. System.out.println("是否存在符合移除条件的对象:"+isContains);   
  12. Iterator<String> it = list1.iterator();   
  13. System.out.println("list1中的对象如下:");   
  14. while(it.hasNext()){   
  15.     String s = it.next();   
  16.     System.out.println(s);   
  17. }  


程序运行结果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。
例如:

Java代码 复制代码
  1. String a = "A";   
  2. String b = "B";   
  3. String c = "C";   
  4. Collection<String> list1 = new ArrayList<String>();   
  5. list1.add(a);//注释该行,再运行   
  6. list1.add(b);   
  7. Collection<String> list2 = new ArrayList<String>();   
  8. list2.add(b);   
  9. list2.add(c);   
  10. boolean isContains = list1.retainAll(list2);   
  11. System.out.println("是否存在符合移除条件的对象:"+isContains);   
  12. Iterator<String> it = list1.iterator();   
  13. System.out.println("list1中的对象如下:");   
  14. while(it.hasNext()){   
  15.     String s = it.next();   
  16.     System.out.println(s);   
  17. }  


程序运行结果1:(没有注释掉list1.add(a);)
是否存在符合移除条件的对象:true
list1中的对象如下:
B

程序运行结果2:(注释掉了list1.add(a);)
是否存在符合移除条件的对象:false
list1中的对象如下:
B

 

4. containsAll(Collection<?> col)方法 
      containsAll(Collection<?> col)方法用来查看在该集合中是否存在指定集合中的所有对象。返回值为boolean型,如果存在则返回True,否则返回False。
例如:

Java代码 复制代码
  1. String a = "A";   
  2. String b = "B";   
  3. String c = "C";   
  4. Collection<String> list1 = new ArrayList<String>();   
  5. list1.add(a);   
  6. list1.add(b);   
  7. Collection<String> list2 = new ArrayList<String>();   
  8. list2.add(b);   
  9. list2.add(c);//注释该行,再运行   
  10. boolean isContains = list1.containsAll(list2);   
  11. 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)方法的实例进行了泛化,还要求入口参数的类型必须符合泛化类型。
例如:

Java代码 复制代码
  1. String a = "A";   
  2. String b = "B";   
  3. String c = "C";   
  4. Collection<String> list1 = new ArrayList<String>();   
  5. list1.add(a);   
  6. list1.add(b);   
  7. list1.add(c);   
  8. String s1[] = new String[1];   
  9. String s2[] = list1.toArray(s1);   
  10. System.out.println("数组s2中的元素如下:");   
  11. for(int i=0;i<s2.length;i++){   
  12.     System.out.println(s2[i]);   
  13. }  


程序运行结果如下:
数组s2中的元素如下:
A
B
C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值