草庐IT

Iterator

全部标签

java - 将 Enumeration<T> 视为 Iterator<T>

我有一个实现Enumeration的类接口(interface),但Java的foreach循环需要Iterator界面。有没有Enumeration至IteratorJava标准库中的适配器? 最佳答案 如果您只想在for-each循环中迭代某些内容(因此是Iterable而不仅仅是Iterator),there'salwaysjava.util.Collections.list(Enumeratione)(不使用任何外部库)。 关于java-将Enumeration视为Iterato

java - 为什么 ConcurrentSkipListSet 升序迭代器 'faster' 而不是降序迭代器?

我在ConcurrentSkipListSet上使用descendingIterator方法。我刚刚查看了文档并注意到以下评论:“升序View及其迭代器比降序View更快。”参见https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentSkipListSet.html#descendingIterator--不幸的是,它没有提供任何关于此的更多信息。有什么样的性能差异?重要吗?为什么会有性能差异? 最佳答案 如果您查看SkipLists的维基百科

java - 在 Java 中迭代 Scala 集合

我如何在Java中迭代Scala集合? 最佳答案 Scala的一些例子classAThing{@scala.reflect.BeanPropertyvalaList=List(1,2,3,4,99)}Java客户端publicclassUseAThing{publicstaticvoidmain(Stringa[]){AThingthing=newAThing();scala.collection.Iteratoriter=thing.getAList().iterator();while(iter.hasNext()){Syste

Java:如果使用 for-each 循环遍历集合,则可以替代 iterator.hasNext()

我试图用for-each语句替换基于迭代器的Java列表循环,但代码在某些时候使用了iterator.hasNext()检查它是否到达列表中的最后一个元素。for-each替代方案是否有类似的东西?for(Objectcurrent:objectList){if(last-element)do-something-special} 最佳答案 for-each只是迭代器版本的语法糖,如果您检查编译后的字节码,您会注意到编译器实际上将其更改为迭代器版本。使用for-each表单,您无法检查是否有更多元素。如果您需要该功能,请继续使用显式

github.com/json-iterator/go 详细教程

最近接触到了github.com/json-iterator/go,是由滴滴开源的第三方json编码库,它同时提供Go和Java两个版本。文中大量内容来自github上的wiki文档,有兴趣的朋友可以直接点击Home跳转到官方文档查阅。本文加了些自己的思考以及相关的详细学习例子,废话不多说了,冲!!!1、基础介绍json-iterator提供简洁的API,可以让你很方便地进行json序列化/反序列化;与encoding/json完全兼容,使用者可以快速、方便地迁移到json-iterator上来。此外,json-iterator还提供了很多其他方便的功能,如开放的序列化/反序列化配置、Exte

java - 为什么我们使用 entrySet() 方法并使用返回的集合来迭代 map ?

通常我们写这个是为了从映射中获取键和值。Mapm=newHashMap();Sets=map.entrySet();Iteratori=s.iterator()while(s.hasNext()){Map.Entrym=(map.Entry)s.next();System.out.println(""+m.getKey()+""+m.getValue());}为什么我们使用集合进行迭代为什么不直接映射? 最佳答案 这非常接近于遍历map,因为您必须说明是只需要键、值还是整个键/值条目。对于集合和列表,只有一个选项,因此不需要单独的方

java - 迭代器有 .next() - 有没有办法获取前一个元素而不是下一个元素?

我有一个在HashMap上使用的迭代器,我保存并加载迭代器。有没有办法用Iterator获取HashMap中的上一个键?(java.util.迭代器)更新我将其保存为Red5连接中的一个属性,然后将其加载回来继续我停止的地方工作。另一个更新我正在遍历HashMap的键集 最佳答案 您可以使用ListIterator而不是Iterator。ListIterator有previous()和hasPrevious()方法。 关于java-迭代器有.next()-有没有办法获取前一个元素而不是下

java - 为什么要在 java nio 的 `selector.selectedKeys().iterator()` 中删除 key ?

我找到了一些javanio的示例代码:ServerSocketChannelserver=ServerSocketChannel.open();Selectorselector=Selector.open();server.socket().bind(newInetSocketAddress(8080));server.configureBlocking(false);server.register(selector,SelectionKey.OP_ACCEPT);while(true){selector.select();Iteratoriter=selector.selectedK

java - 在 Java 中使用 ListIterator 在 LinkedList 上来回移动

我有一个LinkedList,我需要在其上来回迭代多次。我正在使用它来跟踪将动态创建的工作流中的一系列页面。这并不像我预期的那样。给出这个例子:LinkedListnavigationCases;navigationCases.add("page1");navigationCases.add("page2");navigationCases.add("page3");navigationCases.add("page4");ListIteratornavigationItr=navigationCases.listIterator();navigationItr.next();//Re

python - 从迭代器返回然后抛出 StopIteration

当迭代器耗尽时,最后一次从迭代器返回某些东西的好方法是什么。我正在使用一个标志,但这相当丑陋:classExample():def__iter__(self):self.lst=[1,2,3]self.stop=False#背景:我正在从外部来源获取未知数量的字符串并将它们进一步发送给调用者。当这个过程结束时,我想发出一个字符串“xrecordsprocessed”。我无法控制调用代码,所以这必须在我的迭代器中完成。 最佳答案 你可以从__iter__中产生,这会将它变成一个生成器函数(或者你可以按照Dan的建议编写一个生成器函数)