集合类型后面会有<E>,如:Collection<E>、List<E>、AeeayList<E>、Set<E>、Map<E>。
尖括号中的E、K、V等是类型参数名称,他们是实际类型的占位符。
代码示例
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
//在Set和Map集合中使用泛型
public class GenericSet {
public static void main(String[] args) {
//测试Set泛型集合
System.out.println("测试Set泛型集合");
testSet();
//测试Map泛型集合
System.out.println("测试Map泛型集合");
testMap();
}
//测试Set泛型集合方法
private static void testSet() {
Set<String> set = new HashSet<String>();
//向集合中添加元素
set.add("1");
set.add("2");
set.add("3");
//1、使用for-each循环遍历
for(String item:set){
System.out.println("读取集合元素:"+item);
}
//2、使用迭代器遍历
System.out.println("使用迭代器遍历");
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String item = it.next();
System.out.println("读取集合元素:"+item);
}
}
//测试Map泛型集合方法
private static void testMap() {
Map<Integer, String> map = new HashMap<Integer,String>();
map.put(102, "张三");
map.put(102, "李四");
map.put(102, "挖煤火舞");
map.put(102, "赵六");
//1、使用for-each循环遍历
System.out.println("使用for-each循环遍历");
//获取键集合
Set<Integer> keys = map.keySet();
for(Integer key:keys){
String value = map.get(key);
System.out.printf("key=%d - value%s \n",key,value);
}
//2、使用迭代器遍历
System.out.println("使用迭代器遍历");
//获得键值集合
Collection<String> values = map.values();
//遍历值集合
Iterator<String> it = values.iterator();
while (it.hasNext()) {
String item = it.next();
System.out.println("值集合元素:"+item);
}
}
}