gpt4 book ai didi

java - 迭代器没有无需移动光标即可直接获取NextElement的方法

转载 作者:行者123 更新时间:2023-12-01 06:08:11 25 4
gpt4 key购买 nike

为什么没有方法可以直接获取元素而不迭代它?

我寻找答案并找到了一些像这样复制粘贴的答案:

It can be implemented on top of current Iterator interface but since its use will be rare, it doesn't make sense to include it in the interface that everyone has to implement.

这背后的原因是什么?

最佳答案

集合接口(interface)扩展了“Iterable”。因此所有的实现都必须使用迭代器。要直接获取map中的元素,我们可以使用map.get(Key)。要获取List中的元素,我们可以使用index.由于 List 实现了 RandaomAccess 接口(interface),因此可以轻松地使用 key 直接获取元素。但在 Set 中我们无法直接获取元素。我想说的一点是,所有的实现都是不同的,但在我们需要遍历集合内的对象的所有实现中,有一件事是共同的。这项工作是由迭代器完成的。

现在JAVA提倡面向对象编程,因此使用迭代器我们可以使用对象(迭代器实例)并调用方法hasNext()来首先检查元素是否存在。它施加了迭代限制。然后使用 next() 我们将获得下一个元素。所以 hasNext() 也强加了一个 nullCheck。

简而言之,这促进了面向对象的概念和可供不同实现使用的灵活抽象。

关于java - 迭代器没有无需移动光标即可直接获取NextElement的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40572267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com