- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么没有方法可以直接获取元素而不迭代它?
我寻找答案并找到了一些像这样复制粘贴的答案:
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/
我正在制作一个 java servlet,并试图让它显示 3 篇不同文章的预览。我希望它预览每篇文章的第一句,但似乎无法拆分以正常工作,因为我正在使用标记器阅读文章。所以我有类似的东西: while
Java 中的 nextElement() 等价物是什么? 我有以下代码: IEnumerable e = (IEnumerable)request
如果 NullPointerException 发生在以下代码的 System.out.println(keys.nextElement().contains("Test")); 行,则是什么可能的原
RecursiveIteratorIterator::next() 和 RecursiveIteratorIterator::nextElement() 有什么区别? 文档略有不足: Recursiv
我在执行answer.nextElement() 时,jre 内部出现错误 java.lang.NullPointerException: null at com.sun.jndi.ldap.Ldap
我无法通过一些 JavaScript 代码在 DOM 中找到下一个元素。我想更改 img src,但是当我尝试访问 img 元素时,即使它存在,我也会得到“null”。 谢谢 我试过 nextElem
我是 Java 的新手,正在尝试学习 Enumeration 的 hasMoreElements() 和 nextElement() 方法。在我将一些元素添加到 p1 列表并从 p1 列表中删除其他元
我是一名优秀的程序员,十分优秀!