Java中,遍历数据结构Enumeration和Iterator相比有什么优劣

Java中,遍历数据结构Enumeration和Iterator相比有什么优劣,第1张

从现有的 API 中看 Enumeration 仅迭代,而 Iterator 则添加了修改 *** 作,只要实现类确保修改过程本身在语义上是一致的即可,比如普通的 Iterator 允许删除当前索引位置指向的元素,因为它不会导致已经获取的索引位置失效,因此允许,而 ListIterator 则进一步支持其它 *** 作,只要实现类能确保迭代过程是一致的,可预期的。不会导致随机的意外结果发生,比如在多线程环境中,现有的多数非线程安全的集合类的迭代器都会检测并发修改冲突,这就是它们“确保结果是可预期的”的一种方法,虽然这并没有彻底解决问题,但性能和安全在这种情况下不可兼顾时 API 的使用者需要自己确保正确地使用了这个 API。

标准解释很多地方都有就不贴了。

通俗地解释一下方便理解:

遍,就是全部,历,就是经历,可以理解为查看或者取出。

简单的理解就是全部内容都看一遍

比如一个数组a包含[1,2,3,4,5],遍历数组就是指用一个循环或迭代器,把这5个数一个个取出来,打印或者做点其它什么 *** 作。

数组遍历就是数组的全部元素看一遍

树遍历就树的所有节点都看一遍

链表遍历就是链表全部节点都看一遍

刚学的时候我也有这样的疑惑,遍历是什么意思,定义的文字太多,描述的概念太深奥看不懂,理解以后才发现,写个for循环把数组打印出来就算遍历一次了,遍历就是在做这么简单的一件事。

希望我的解释对你的理解有帮助。

for each循环.

例如:

ArrayList<Object>list = new ArrayList<Object>()

for(Object l:list){

System.out.println(l)

}

LinkedList<Object>list = new LinkedList<Object>()

for(Object l:list){

System.out.println(l)

}

HashSet<Object>set = new HashSet<Object>()

for(Object s:set){

System.out.println(s)

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9612398.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存