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);
}
看起来好像没有什么大问题,也能正常编译,但真正运行起来就会报错:
Excepon in thread “main” java.lang.ClassCastExcepon: 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

展开>> 收起<<
014--为什么要使用泛型和迭代器+面试题.docx

共7页,预览2页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机 价格:5.9玖币 属性:7 页 大小:95.99KB 格式:DOCX 时间:2024-12-11

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 7
客服
关注