集合之泛型【Genericcs】

package com.Lucky;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
/**
 * 泛型的应用场景:
 *              1。如果我们在定义类/方法/接口的时候,类型不确定,可以定义为泛型类/泛型接口/泛型方法
 *              2. 如果类型不确定,但是知道指定的范围,可以使用泛型的通配符?【进行类型范围的限定】
 *
 *
 * 泛型类:在类名称的后面加上<数据类型>:例如  test<Integer>
 * 泛型方法:在方法的修饰符的后面加上<数据类型>:例如  static<Integer>
 * 泛型接口:在接口名称的后面加上<数据类型>:例如  Amail<Integer>
 */

/**
 * 在泛型中不能写基本数据类型
 * 泛型中的类型不能继承,但是数据可以继承
 */

/*
         泛型的通配符:

           ? 表示不确定的数据类型,可以进行数据类型的限定
             1.  ? extends E  :可以传递E类型或E类型的子类类型
             2.  ? super E    :可以传递E类型或E类型的父类型
 */

/*
     不用泛型时,存储数据
         结论:没有给集合指定类型,会默认所有的数据类型都是Object类型
              在此时可以往集合添加所有类型的数据
              坏处:获取数据时,因为数据也是Object类型数据,所以无法使用数据的特定方法。


    使用泛型:   可以在添加数据的时候将数据类型进行统一
               获取数据时节省了强制转换的步骤



       每天一个小知识:java中的泛型是伪泛型

                  */
public class GenericsDemo {
      public static void main(String[] args) {
          ArrayList li=new ArrayList();
          li.add(1);
          li.add("NB");
          li.add(new double[10]);


          ArrayList<String> li1=new ArrayList<String>();
          li1.add("10");

          //遍历获取数据
          Iterator it = li.iterator();
          while (it.hasNext()){
              System.out.println(it.next());
          }
      }

}

  

posted @ 2022-12-12 09:12  唯易人生  阅读(24)  评论(0)    收藏  举报