/******************************************************************************
泛型的使用:
1.在集合中使用泛型:
总结:
1.结合接口或者集合类在jdk5.0时都修改为带泛型类型的结构。
2.在实例化集合类时,可以指明具体的泛型类型
3.指明完以后,在集合类或者接口中凡是定义类或者接口时,内部结构使用到类的泛型的位置,都制定为实例化的泛型类型
比如:add(E e)---->实例化以后:add(integer e)
4.注意点:泛型的类型必须是类,不能是基本数据类型,需要用到基本数据类型的位置,拿包装类替换
5.如果实例化时,没有指明泛型的类型,默认类型为java.lang,Object类型。
//如何定义泛型结构:泛型类,泛型接口,泛型方法
*****************************************************************************/
import java.util.;
public class Main
{
/
public static void main(String[] args) {
//在集合中使用泛型之前的情况:
ArrayList list = new ArrayList();
//需求:存放学生的成绩
list.add(78);
list.add(76);
list.add(89);
list.add(88);
//问题一:类型不安全
//list.add("Tom");
System.out.println(list);
//问题二:强转时,可能出现ClassCastException
for (Object score:list ){
int stuScore = (int) score;
System.out.println(stuScore);
}
}
/
//泛型的使用
//例子1:
/ public static void main(String[] args){
ArrayList list = new ArrayList();
list.add(78);
list.add(76);
list.add(89);
list.add(88);
//list.add("Tom");//编译不过,会进行类型检查,保证数据的安全
//增强for循环
for(Integer score :list){
//避免了强转操作
int stuScore = score;
System.out.println(stuScore);
}
//
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()){
int stuScore1 = iterator.next();
System.out.println(stuScore1);
}
}
*/
//在集合中使用泛型的情况:以HashMap为例
public static void main(String[] args){
Map<String,Integer> map = new HashMap<String,Integer>();
map.put(“Tom”,991);
map.put(“Tom1”,992);
map.put(“Tom2”,993);
map.put(“Tom3”,994);
map.put(“Tom4”,995);
// map.put(2,99);//报错,类型不匹配
//泛型嵌套
Set <Map.Entry<String,Integer>> = map.entrySet();
Iterator <Map.Entry<String,Integer>> = entrySet.iterator();
while (iterator1.hasNext()){
Map.Entry<String,Integer> e = iterator.next();
System.out.println(entry.getKey() + “-----------”+entry.getValue());
}
}
}