A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  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. * 案例:向不同的集合中,只能存储Student和Worker
  10. *
  11. */
  12. public class ConstraintTypeDemo7 {

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

  34.         }
  35.         /*创建一个输出集合的功能   需求:只能输出打印Dog或者Cat???
  36.          * 当添加通配符的限定后,上面的printCollection(list2)会编译失败
  37.          * 因为:通配符限定list集合中的元素只能是Animal以及其子类
  38.          *
  39.          * */
  40.         public static void printCollection(Collection <?extends Animal>coll){
  41.                
  42.                 //way1遍历
  43.                 /*for (int i = 0; i < list.size(); i++) {
  44.                         System.out.println(list.get(i));
  45.                 }*/
  46.                
  47.                 //way2遍历
  48.                 for (Iterator <?>it = coll.iterator();it.hasNext();) {
  49.                         Object obj =  it.next();
  50.                         System.out.println(obj);
  51.                 }
  52.         }
  53. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马