Java知识干货!什么是迭代器,Iterator和ListIterator的区别以及HashMap的工作原理是什么?_java自学_java相关资讯_成都java培训机构

Java知识干货!什么是迭代器,Iterator和ListIterator的区别以及HashMap的工作原理是什么?

  • 作者:创始人
  • 发表时间:2021-12-16 09:25:50

HashMap的工作原理是什么?

在大家学习Java过程中会学习到许许多多的知识点,什么是迭代器,Iterator和ListIterator的区别以及HashMap的工作原理是什么?快来跟小编一起看看吧。

何谓迭代程序?

**Iterator接口提供了许多方法来遍历集合元素。**每个集合类包含可返回迭代器实例的迭代方法。迭代期间,迭代器可以移除底层集合的元素,但不能直接调用该集合的remove(ObjectObj)删除,可通过迭代器的remove()方法将其删除。

Iterator和Listerator有什么不同呢?

它们的差别如下:

1、可以使用Iterator遍历Set和List集合,但ListIterator只能用于遍历List。

2、Iterator对于集合只能是向前的遍历,而ListIterator可以向前或后退。

3、ListIterator实现了Iterator接口,包括一些其它功能,例如:增加元素,替换元素,获取前后元素的索引等。
什么是迭代器,Iterator和ListIterator的区别以及HashMap的工作原理是什么?

“快速故障”(fail-fast)与安全故障(fail-safe)有何不同?

迅速失败:当您遍历一组集合时,如果有其他线程正在修改您正在访问的集合,则会引发ConcurrentModification异常对于java.util包,这就是快速失败。安全性失败:在迭代中,到底层集合中做一个复制,这样就不会在修改上一集时受到任何影响,而不会引发ConcurrentModification异常。

java.util.concurrent包下的所有操作都存在安全性问题。

HashMap在Java中是如何工作的?

众所周知,Java中最常用的两个结构是数组和模拟指针(引用),几乎所有的数据结构都能利用这两种结构结合起来实现,如HashMap。事实上,HashMap是一种“链表散列”,其数据结构如下:在左边是一个数组,数组中的每个元素都是一个链表,每个链表都是entry。

HashMap基于hashing的原则,我们使用put(key,value)将对象存储在HashMap中,使用get(key)从HashMap中获取对象。在向put()方法传递键和值时,我们首先对这个键调用hashCode()方法,而返回的hashCode用来查找存储条目对象的位置。

什么是迭代器,Iterator和ListIterator的区别以及HashMap的工作原理是什么?关注知了堂成都Java培训,带你了解更多Java相关问题和更多Java相关知识小干货。