014--为什么要使用泛型和迭代器+面试题
VIP免费
2024-12-11
39
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中考3年模拟》2023专题解释全国道德与法治资料包05专题五 走进社会生活 遵守社会规则VIP免费
2024-11-21 24 -
曲一线系列初中《5中考3年模拟》2023专题解释全国道德与法治资料包05专题五 走进社会生活 遵守社会规则VIP免费
2024-11-21 22 -
曲一线系列初中《5中考3年模拟》2023专题解释全国道德与法治资料包03专题三 青春时光 做情绪情感的主人VIP免费
2024-11-21 16 -
曲一线系列初中《5中考3年模拟》2023专题解释全国道德与法治资料包03专题三 青春时光 做情绪情感的主人VIP免费
2024-11-21 19 -
曲一线系列初中《5中考3年模拟》2023专题解释全国道德与法治资料包02专题二 友谊的天空 师长情谊VIP免费
2024-11-21 19 -
曲一线系列初中《5中考3年模拟》2023专题解释全国道德与法治资料包02专题二 友谊的天空 师长情谊VIP免费
2024-11-21 20 -
曲一线系列初中《5中考3年模拟》2023专题解释全国道德与法治资料包01专题一 成长的节拍 生命的思考VIP免费
2024-11-21 23 -
曲一线系列初中《5中考3年模拟》2023专题解释全国道德与法治资料包01专题一 成长的节拍 生命的思考VIP免费
2024-11-21 24 -
曲一线系列初中《5中考3年模拟》2023专题解释全国道德与法治资料包《53中考》全国道德与法治资料包VIP免费
2024-11-21 27 -
曲一线系列初中《5中考3年模拟》2023专题解释全国道德与法治资料包07专题七 坚持宪法至上 崇尚法治精神VIP免费
2024-11-21 18
分类:计算机
价格:5.9玖币
属性:7 页
大小:95.99KB
格式:DOCX
时间:2024-12-11
作者详情
相关内容
-
2025届重庆市西南大学附属中学高三下学期5月全镇模拟物理试题(含答案)
分类:中学教育
时间:2025-12-31
标签:无
格式:PDF
价格:10 玖币
-
2025届重庆市西南大学附属中学高三下学期5月全镇模拟化学试题(含答案)
分类:中学教育
时间:2025-12-31
标签:无
格式:PDF
价格:10 玖币
-
2025届浙江省新阵地联盟高三10月联考数学答案
分类:中学教育
时间:2025-12-31
标签:无
格式:PDF
价格:10 玖币
-
2025届重庆市西南大学附属中学高三下学期5月全镇模拟数学试题(含答案)
分类:中学教育
时间:2025-12-31
标签:无
格式:PDF
价格:10 玖币
-
2025届重庆康德三诊英语+答案
分类:中学教育
时间:2026-01-03
标签:无
格式:PDF
价格:10 玖币


渝公网安备50010702506394