6-泛型引入

什么是泛型(Generic)

  • 泛型就相当于标签
  • 形式:< >
  • 集合容器类在设计阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此把元素的类型设计成一个参数,这个类型参数叫做泛型。
  • Collection,List,ArrayList这个就是类型参数,即泛型

没有泛型的时候使用集合:

        //创建一个ArrayList集合,向这个集合中存入学生的成绩:
        ArrayList al = new ArrayList();
        al.add(98);//要求存引用数据类型,int--->integer(自动装箱)
        al.add(18);
        al.add(39);
        al.add(60);
        al.add(83);
        al.add("丽丽");//存错了,丢了个名字进去

        //对集合遍历查看
        for (Object obj : al) {// 冒号:对al进行遍历---->遍历出来的每一个元素类型都是Object类型取名obj--->对obj输出
            System.out.println(obj);
        }
  • 若不使用泛型,有缺点:
    • 一般我们在使用的时候基本上往集合中存入的都是相同类型的数据--->便于管理,所以现在什么引用数据类型数据都可以存入集合,不方便!
  • 不想在集合中存多种数据类型---->限制
    • 在集合里贴个标签---->泛型 <类型>

集合中使用泛型

        //创建一个ArrayList集合,向这个集合中存入学生的成绩:
        ArrayList<Integer> al = new ArrayList<Integer>();//指定泛型
        al.add(98);//要求存引用数据类型,int--->integer(自动装箱)
        al.add(18);
        al.add(39);
        al.add(60);
        al.add(83);
//        al.add("丽丽"); 加入Sting类型数据会出错

        //对集合遍历查看
/*        for (Object obj : al) {
            System.out.println(obj);
        }*/
        for (Integer i : al) {
            System.out.println(i);
        }//集合内所有元素固定,故可以用Integer类型接收
  • 加入泛型的优点:在编译时期就会对类型进行检查,不是泛型对应的类型就不可以添加入这个集合
  • JDK1.5以后开始使用泛型

总结

  1. JDK1.5以后
  2. 泛型实际就是一个< >引起来的参数类型,这个参数类型具体在使用的时候才会确定
  3. 使用了泛型以后,可以确定集合中存放数据的类型,在编译时期就可以检查出来
  4. 使用泛型你可能觉得麻烦,实际使用了泛型才会简单,后续的遍历等操作简单
  5. 泛型的类型:都是引用数据类型,不能是基本数据类型
  6. ArrayList al = new ArrayList();在JDK1.7以后可以写为ArrayList al = new ArrayList< >();
posted @ 2024-08-13 17:13  呆头尖瓜  阅读(2)  评论(0编辑  收藏  举报