自学Java第三十一课
开头我利用TreeSet做了一个案例,用到了Random
泛型
顾名思义,包括广泛的类型,能让我们存储数据更加方便。本质为参数化类型。 它所操作的数据类型被指定为一个参数。
参数化类型:将类型由原来的数据类型参数化,在使用时在传入具体类型。
格式:<类型> 指定一种类型,可看作形参; <类型1,类型2...>多种类型,可看作形参;
注:具体调用时给定类型可看成形参,形参必须为引用类型。 Object代表所有引用类型。
优点:①将运行时出现的问题提前到了编译阶段;
②避免了类型强制转换。
泛型类
格式:修饰符class类名<类型>{}
泛型方法
public class gen<T>{ public <T> void show(T t){ System.out.println(t); } }
这个方法适用于各种数据类型输出。
泛型接口
1 public interface gen{ 2 void show(T t); 3 }
1 public interface generlm implements gen<T>{ 2 //重写方法 3 public void show(T t){ 4 System.out.println(t); 5 } 6 }
类型通配符<?>
目的:为表示各种泛型List父类
List<?>:表示元素类型未知的List,元素可匹配任何类型。
注:这种带通配符的List仅表示它是各种泛型List父类,不能添加元素。
类型通配符上限:<?extends类型>
例:List<?extendsNumber>表示类型为Number 或其子类。
类型通配符下限:<?super类型>
例:List<?super NUmber>表示类型为Number 或其父类
可变参数
又称参数的个数可变,用作方法的形参出现
格式:修饰符 返回值类型 方法名(数据类型...变量名){}
例:public static sum(int...a){}
注:①a变量是一个数组;②如果一个方法有多个参数,包含可变参数,可变参数必须放最后,变量可包含所有数据
可变参数的使用
Arrays中静态方法:public static <T> List<T>asList(T...a) 返回值由指定数组支持固定大小列表
其中元素不可增删,可以修改。
List接口中静态方法:public static<E>List <E>of(E...elemnets)返回值包含任意数量元素不可变列表
其中元素不可以增删改。
Set接口中静态方法:public static<E>Set<E>of(E...elements)返回一个包含任意数量元素的不可变集合
其中元素不可增删,没有方法进行修改
明天将学习集合体系中的Map。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署