Java--泛型

23 篇文章 0 订阅

泛型的使用

总结:
 * 1,集合接口或集合类在jdk5.0时都修改为带泛型的结构
 * 2,在实例化集合类时,可以指明具体的泛型类型
 * 3,指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如:方法,构造器)使用到类的泛型位置,都指定为实例化的泛型类型
 *    比如add(E e)---->实例化以后:add(Integer e)
 * 4,注意:泛型的类型必须是类,不能是基本数据类型,需要用到基本数据类型的位置,拿包装类替换
 * 5,如果实例化时,没有指明泛型的类型,默认类型为java.lang.Object类型。
    @Test
    public void test1(){
        ArrayList list=new ArrayList();
        //需求:存放学生成绩
        list.add(60);
        list.add(70);
        list.add(80);
        list.add(90);

        //问题一:类型不安全
        list.add("Tom");


        for(Object obj:list){
            //问题二:强转时,可能出现ClassCastException
            int num=(Integer) obj;
            System.out.println(num);
        }

    }

    //在集合中使用泛型的情况:
    @Test
    public void test2(){
        ArrayList<Integer> list=new ArrayList<Integer>();
        list.add(60);
        list.add(70);
        list.add(80);
        list.add(90);
        //加了泛型,编译时就会进行类型检查,保证数据安全
        //list.add("Tom");
        //遍历方式一:
        for(Integer i:list){
            //避免了强转操作
            int score=i;
            System.out.println(score);
        }
        //方式二:
        Iterator<Integer> iterator=list.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }

    @Test
    public void test3(){

        Map<String,Integer> map=new HashMap<String,Integer>();
        map.put("Tom",80);
        map.put("Sam",90);
        Set<Map.Entry<String,Integer>> enSet=map.entrySet();
        System.out.println(enSet);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值