黑马程序员技术交流社区

标题: 泛型的使用(二) [打印本页]

作者: anyway1919    时间: 2015-9-10 23:50
标题: 泛型的使用(二)
  1. package com.review.demo2;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.HashSet;
  5. import java.util.Iterator;
  6. import java.util.List;
  7. import java.util.Set;
  8. /**
  9. * 案例3:向不同集合中,存储不同的类型的对象。 存储:Student、Worker
  10. *
  11. */
  12. public class ConstraintTypeDemo5 {

  13.         public static void main(String[] args) {
  14.                 // 创建一个List集合,存放Dog
  15.                 List<Dog>list1 = new ArrayList<>();
  16.                
  17.                 //创建一个Set集合,存放Cat
  18.                 Set<Cat> set = new HashSet<>();
  19.                
  20.                 //存储相同了类型的元素
  21.                
  22.                 list1.add(new Dog("kitty",2));
  23.                 list1.add(new Dog("jimmy",1));
  24.                 list1.add(new Dog("jone",3));
  25.                 list1.add(new Dog("lasha",5));
  26.                
  27.                 printCollection(list1);
  28.                 System.out.println("-------------------------------------------------------------");
  29.                 set.add(new Cat("mouse",2));
  30.                 set.add(new Cat("cat",1));
  31.                 set.add(new Cat("cat2",3));
  32.                 printCollection(set);

  33.         }
  34.        
  35.         //创建一个输出集合的功能  Collection<?>?相当于Object
  36.         public static void printCollection(Collection <?>coll){
  37.                
  38.                 //way1遍历
  39.                 /*for (int i = 0; i < list.size(); i++) {
  40.                         System.out.println(list.get(i));
  41.                 }*/
  42.                
  43.                 //way2遍历
  44.                 for (Iterator <?>it = coll.iterator();it.hasNext();) {
  45.                         Object obj =  it.next();//此处由于添加了通配符,Object可能是Dog,也可能是Cat
  46.                         if (obj instanceof Dog) {
  47.                                 Dog dog = (Dog)obj;
  48.                                 System.out.println(dog);
  49.                         }else if(obj instanceof Cat){
  50.                                 Cat cat = (Cat)obj;
  51.                                 System.out.println(cat);
  52.                         }
  53.                 }
  54.         }
  55. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2