集合之泛型【Genericcs】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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 @   唯易人生  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示