泛型的概念、使用泛型的好处

------------恢复内容开始------------

泛型的概念

泛型:是一种未知的数据类型,当我们不知道使用什么数据类型的时候可以使用泛型

泛型也可以看出一个变量,用来接受数据类型

  创建集合对象的时候就会确定泛型的数据类型

 

 会把数据类型作为参数传递,把String赋值给泛型E

 

 

 

会把数据类型作为参数传递,把Stuednt赋值给泛型E

 

 

 

使用泛型的好处

 

    public static void main(String[] args) {
        demo();
    }

    /*
     * 没有泛型的集合
     * 好处:集合不使用泛型的话 默认的就是 Object类型
     * 坏处:不安全 ,会引发异常
     */
    private static void demo() {
        ArrayList list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        for (Object o : list) {
            System.out.println(o);
        }
    }
}

这是没有使用泛型的集合

public static void main(String[] args) {
        demo();
        demo1();
    }


    /*
     * 没有泛型的集合
     * 好处:集合不使用泛型的话 默认的就是 Object类型
     * 坏处:不安全 ,会引发异常
     */
    private static void demo() {
        ArrayList list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
            System.out.println(next);
//        如果我想获取集合中的长度,不可以使用 Object = “123”
//        如果要使用的话 需要向下转型
            String s = (String) next;
            s.length();
            System.out.println();
        }
    }
}

如果我想使用特殊的方法的话,是不可以使用的就算向下转型的话也是会报错

 这个就是没有泛型集合

在来写一个有泛型的集合

public static void main(String[] args) {
//        demo();
        demo1();
    }

    /*
        有泛型的集合
       有泛型好处:
                1.避免类型转换的麻烦,储存的是什么类型,就取出什么类型
                2.把运行期异常的代码抛出,提升到编译器
        弊端:
                1。泛型是什么类型只能存储什么类型

     */
    private static void demo1() {
        ArrayList<String> list = new ArrayList<>();
        list.add("aa");
        list.add("bb");
        list.add("cc");
//       使用迭代器遍历输出
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
//           获取字符的长度
            int length = next.length();
            System.out.println(length);
        }

    }

这个就是有泛型的好处

posted @ 2022-07-05 17:10  一位程序袁  阅读(102)  评论(0编辑  收藏  举报