集合類型後面會有<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);
}
}
}