集合之泛型【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()); } } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律