泛型的引入

泛型的引入

什么是泛型

泛型就相当于标签

形式:<>

集合容器在设计阶段/声明阶段不能确定这个这个容器到底实际存的什么类型的对象,所以在JDK1.5之前只把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素类型不确定,其他部分都是确定的,列如关于这个元素如何保存,如何管理是确定的,因此此时把元素类型设计成一个参数。这个类型就叫泛型。

Colleation<E>,LIST<E>,Array<E>这个<E>就是类型参数,即是泛型

 

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

package com.wangg;

import java.util.ArrayList;

public class Dome04 {
  public static void main(String[] args) {
      //创建一个AyyayList集合,来存入学生类型
      ArrayList ar = new ArrayList();
      ar.add(90);
      ar.add(15);
      ar.add(23);
      ar.add(13);
      ar.add(78);
      ar.add("王刚");
      //对集合进行查看
      for (Object obj:ar){
          System.out.println(obj);
      }
  }
}

如果不使用泛型的话,有缺点:

一般我们在使用的时候基本上往集合中存入的都是相同类型的数据————》便于管理,所以现在什么引用数据类型都可以存入集合,不方便!

JDK1.5之后开始使用泛型

package com.wangg;

import java.util.ArrayList;

public class Dome04 {
  public static void main(String[] args) {
      //创建一个AyyayList集合,来存入学生类型
      //加入泛型的优点,在编译期间就会对类型进行检查,不是泛型对应类型的就加不了这个集合
      ArrayList<Integer> ar = new ArrayList<Integer>();
      ar.add(90);
      ar.add(15);
      ar.add(23);
      ar.add(13);
      ar.add(78);
//       ar.add("王刚");
      //对集合进行查看
//       for (Object obj:ar){
//           System.out.println(obj);
//       }
      for (Integer a :ar){
          System.out.println(a   );
      }
  }
}

泛型总结

JDK1.5之后

泛型实际就是一个<>引起来的 参数类型 具体在使用的时候才会确定具体的类型。

image-20210811101919404

使用了泛型之后,可以确定集合中数据存放的类型,在编译中就可以检查出来

使用了泛型你可能觉得麻烦,实际使用了泛型才会简单,后续的遍历等操作简单

泛型的类型:都是引用数据类型,不能是基本数据类型。

ArrayList<Integer> ar = new ArrayList<Integer>();在JDK1.7之后可以写为

ArrayList<Integer> ar = new ArrayList<>(); <> 钻石运算符

posted @ 2021-08-11 10:30  πππ·  阅读(69)  评论(0)    收藏  举报