- package com.review.demo2;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.HashSet;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Set;
- /**
- * 案例:向不同的集合中,只能存储Student和Worker
- *
- */
- public class ConstraintTypeDemo7 {
- public static void main(String[] args) {
- // 创建一个List集合,存放Dog
- List<Dog>list1 = new ArrayList<>();
- //创建一个Set集合,存放Cat
- Set<Cat> set = new HashSet<>();
- //存储相同了类型的元素
- list1.add(new Dog("kitty",2));
- list1.add(new Dog("jimmy",1));
- list1.add(new Dog("jone",3));
- list1.add(new Dog("lasha",5));
- printCollection(list1);
- System.out.println("-------------------------------------------------------------");
- set.add(new Cat("mouse",2));
- set.add(new Cat("cat",1));
- set.add(new Cat("cat2",3));
- printCollection(set);
-
- List<String>list2 = new ArrayList<>();
- list2.add("字符串");
- list2.add("字符串2");
- // printCollection(list2); 此处编译失败
- }
- /*创建一个输出集合的功能 需求:只能输出打印Dog或者Cat???
- * 当添加通配符的限定后,上面的printCollection(list2)会编译失败
- * 因为:通配符限定list集合中的元素只能是Animal以及其子类
- *
- * */
- public static void printCollection(Collection <?extends Animal>coll){
-
- //way1遍历
- /*for (int i = 0; i < list.size(); i++) {
- System.out.println(list.get(i));
- }*/
-
- //way2遍历
- for (Iterator <?>it = coll.iterator();it.hasNext();) {
- Object obj = it.next();
- System.out.println(obj);
- }
- }
- }
复制代码 |
|