package com.chunzhi.Test03Generic;
/*
泛型的通配符:
?:代表任意的数据类型
使用方式:
不能创建对象使用
只能作为方法的参数使用
*/
import java.util.ArrayList;
import java.util.Iterator;
public class Test05GenericWildcard {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Hello");
list.add("World");
list.add("Java");
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(0);
list1.add(1);
list1.add(2);
printMethod(list);
printMethod(list1);
}
/*
定义一个方法,能遍历所有类型的ArrayList集合
这时候我们不知道ArrayList集合使用什么数据类型,可以用泛型的通配符 ? 来接受数据类型
注意:泛型没有继承概念
*/
public static void printMethod(ArrayList<?> list) {
// 1.用for循环遍历集合
System.out.println("使用for循环");
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
// 2.用迭代器遍历集合
System.out.println("使用迭代器");
Iterator<?> it = list.iterator();
while (it.hasNext()) {
Object obj = it.next();
System.out.println(obj);
}
}
}