014--为什么要使用泛型和迭代器+面试题

VIP免费
2024-12-11
4
0
95.99KB
7 页
5.9玖币
侵权投诉
为什么要使用泛型和迭代器 + 面试题
泛型
1)为什么要用泛型?
在泛型没有诞生之前,我们经常会遇到这样的问题,如以下代码所示:
ArrayList arrayList = new ArrayList();
arrayList.add("Java");
arrayList.add(24);
for (int i = 0; i < arrayList.size(); i++) {
String str = (String) arrayList.get(i);
System.out.println(str);
}
看起来好像没有什么大问题,也能正常编译,但真正运行起来就会报错:
Excepon in thread “main” java.lang.ClassCastExcepon: java.lang.Integer cannot be cast to java.lang.String
at xxx(xxx.java:12)
类型转换出错,当我们给 ArrayList 放入不同类型的数据,却使用一种类型进行接收的时候,就会出现很多
类似的错误,可能更多的时候,是因为开发人员的不小心导致的。那有没有好的办法可以杜绝此类问题的
发生呢?这个时候 Java 语言提供了一个很好的解决方案——“泛型”。
2)泛型介绍
泛型 :泛型本质上是类型参数化,解决了不确定对象的类型问题。
泛型的使用,请参考以下代码:
ArrayList<String> arrayList = new ArrayList();
arrayList.add("Java");
这个时候如果给 arrayList 添加非 String 类型的元素,编译器就会报错,提醒开发人员插
入相同类型的元素。
报错信息如下图所示:
enter image description here
这样就可以避免开头示例中,类型不一致导致程序运行过程中报错的问题了。
3)泛型的优点
泛型的优点主要体现在以下三个方面。
•安全:不用担心程序运行过程中出现类型转换的错误。
• 避免了类型转换:如果是非泛型,获取到的元素是 Object 类型的,需要强制类型转
换。
•可读性高:编码阶段就明确的知道集合中元素的类型。
迭代器(Iterator)
1)为什么要用迭代器?
我们回想一下,在迭代器(Iterator)没有出现之前,如果要遍历数组和集合,需要使用
方法。
数组遍历,代码如下:
String[] arr = new String[]{"Java", "Java 虚拟机", "Java 中文社群"};
for (int i = 0; i < arr.length; i++) {
String item = arr[i];
}
集合遍历,代码如下:
List<String> list = new ArrayList<String>() {{
add("Java");
add("Java 虚拟机");
add("Java 中文社群");
}};
for (int i = 0; i < list.size(); i++) {
String item = list.get(i);
}
而迭代器的产生,就是为不同类型的容器遍历,提供标准统一的方法。
迭代器遍历,代码如下:
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object object = iterator.next();
// do something
}
总结 :使用了迭代器就可以不用关注容器的内部细节,用同样的方式遍历不同类型的容
器。
摘要:
展开>>
收起<<
为什么要使用泛型和迭代器+面试题泛型1)为什么要用泛型?在泛型没有诞生之前,我们经常会遇到这样的问题,如以下代码所示:ArrayListarrayList=newArrayList();arrayList.add("Java");arrayList.add(24);for(inti=0;i
声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机
价格:5.9玖币
属性:7 页
大小:95.99KB
格式:DOCX
时间:2024-12-11
相关内容
-
行政事业单位内部控制报告-关于印发编外聘用人员管理制度和编外聘用人员年度考核制度
分类:办公文档
时间:2025-03-03
标签:无
格式:DOC
价格:5.9 玖币
-
行政事业单位内部控制报告-风险评估管理制度
分类:办公文档
时间:2025-03-03
标签:无
格式:DOCX
价格:5.9 玖币
-
行政事业单位内部控制报告-采购管理内部控制制度
分类:办公文档
时间:2025-03-03
标签:无
格式:DOCX
价格:5.9 玖币
-
行政事业单位内部控制报告-部署单位内部控制专题培训和风险评估工作会议纪要
分类:办公文档
时间:2025-03-03
标签:无
格式:DOC
价格:5.9 玖币
-
行政事业单位内部控制报告-关键岗位轮岗及专项审计制度
分类:办公文档
时间:2025-03-03
标签:关键
格式:DOCX
价格:5.9 玖币