泛型的概念和使用泛型的好处
泛型概述
泛型:是一种位置的数据类型,当我们不知道使用什么数据类型的时候可以使用泛型
泛型也可以堪称是一个变量,用来接受数据
E e:Element元素
T t type类型
ArrayList集合在定义的时候,不知道集合中都存储什么类型的数据,所以类型使用泛型
E:未知的数据类型
public class ArrayList<E>{
public boolean add(E e){}
public E get(E e){}
}
创建集合对象不使用泛型
好处:
集合不使用泛型,默认的类型就是Object类型,任何类型的数据都可以存放
弊端:
不安全,会引发异常
public static void main(String[] args) {
Collection coll = new ArrayList();
coll.add("abc");
coll.add("bcd");
coll.add(2);//由于集合没有左任何限定,任何类型都可以存放
Iterator iterator = coll.iterator();
while(iterator.hasNext()){
String next = (String) iterator.next();
System.out.println(next);
System.out.println(next.length());
}
}
创建集合对象使用泛型
好处:
1.避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型
2.把运行期异常,提升到了编译期
弊端:泛型是什么类型,只能存储什么类型的数据
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
// list.add(1);//错误写法
list.forEach(s -> System.out.println(s));
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!