什么是泛型(Generic)
- 泛型就相当于标签
- 形式:< >
- 集合容器类在设计阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此把元素的类型设计成一个参数,这个类型参数叫做泛型。
- Collection,List,ArrayList这个就是类型参数,即泛型
没有泛型的时候使用集合:
ArrayList al = new ArrayList();
al.add(98);
al.add(18);
al.add(39);
al.add(60);
al.add(83);
al.add("丽丽");
for (Object obj : al) {
System.out.println(obj);
}
- 若不使用泛型,有缺点:
- 一般我们在使用的时候基本上往集合中存入的都是相同类型的数据--->便于管理,所以现在什么引用数据类型数据都可以存入集合,不方便!
- 不想在集合中存多种数据类型---->限制
集合中使用泛型
ArrayList<Integer> al = new ArrayList<Integer>();
al.add(98);
al.add(18);
al.add(39);
al.add(60);
al.add(83);
for (Integer i : al) {
System.out.println(i);
}
- 加入泛型的优点:在编译时期就会对类型进行检查,不是泛型对应的类型就不可以添加入这个集合
- JDK1.5以后开始使用泛型
总结
- JDK1.5以后
- 泛型实际就是一个< >引起来的参数类型,这个参数类型具体在使用的时候才会确定
- 使用了泛型以后,可以确定集合中存放数据的类型,在编译时期就可以检查出来
- 使用泛型你可能觉得麻烦,实际使用了泛型才会简单,后续的遍历等操作简单
- 泛型的类型:都是引用数据类型,不能是基本数据类型
- ArrayList al = new ArrayList();在JDK1.7以后可以写为ArrayList al = new ArrayList< >();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义