import org.junit.Test;
import java.util.*;
/**
* 泛型
*泛型的类型必须是类,不能是基本数据类型,需要用到基本数据类型的位置,拿包装类来使用
*
*
* @author xianyu
* @time 2019-08-17-11:06
*/
public class GenericTest {
//JDK1.5 在集合中使用泛型之前
@Test
public void test(){
//需求:存放学生成绩
ArrayList list = new ArrayList();
list.add(78);
list.add(82);
list.add(87);
list.add(91);
//问题一:类型不安全
//list.add("Tom");
for (Object score : list) {
//问题二:强转时 可能出现ClassCastException
int stuscore = (Integer)score; // java.lang.String cannot be cast to java.lang.Integer
System.out.println(stuscore);
}
}
@Test
public void test2(){
//在集合中使用泛型
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(78);
list.add(83);
list.add(87);
list.add(91);
//编译时就会进行类型检查
//list.add("Tom"); //报错
for (Integer score : list){
int stuscore = score; //避免了强转操作
System.out.println(score);
}
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()){
int stuscore = iterator.next();
System.out.println(stuscore);
}
}
@Test
public void test3(){
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("aa",89);
map.put("bb",83);
map.put("dd",89);
map.put("hh",93);
//map.put(34,"Tom"); 报错
Set<Map.Entry<String,Integer>> entry = map.entrySet(); //泛型的嵌套
Iterator<Map.Entry<String,Integer>> iterator = entry.iterator();
while(iterator.hasNext()){
Map.Entry<String,Integer> e = iterator.next();
String key = e.getKey();
Integer value = e.getValue();
System.out.println(key + "------->" + value);
}
}
}
Java泛型
最新推荐文章于 2025-07-14 21:00:27 发布