草庐IT

iterable

全部标签

Java : ConcurrentModificationException while iterating over list

这个问题在这里已经有了答案:IteratingthroughaCollection,avoidingConcurrentModificationExceptionwhenremovingobjectsinaloop(31个答案)WhyisaConcurrentModificationExceptionthrownandhowtodebugit(8个答案)关闭3年前。当我执行下面的代码时,我得到了ConcurrentModificationExceptionCollectionmyCollection=Collections.synchronizedList(newArrayList(1

java - 从 Iterator<T> 创建 List<T> 实例

有人知道是否有从Iterator实例创建List的标准方法吗? 最佳答案 我倾向于Guava'sLists.newArrayList(Iterator)因为我通常将Guava作为依赖项,而且它已经存在。 关于java-从Iterator创建List实例,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/11018325/

java - 集合 - Iterator.remove() 与 Collection.remove()

根据太阳,"Iterator.removeistheonlysafewaytomodifyacollectionduringiteration;thebehaviorisunspecifiediftheunderlyingcollectionismodifiedinanyotherwaywhiletheiterationisinprogress."我有两个问题:是什么让这个操作“Iterator.remove()”比其他操作更稳定?如果“Collection.remove()”方法在大多数用例中都没有用,他们为什么要提供该方法? 最佳答案

Java Iterator 实现 - next() 和 hasNext() 执行顺序

我有一个java.util.Iterator的实现,它要求对next()的调用应该始终通过对hasNext()的调用来进行。(这是因为在多线程环境中结果是异步返回的,并且永远不清楚可能还有多少结果)。在JavaDoc中正确记录这一点,然后在违反时抛出RuntimeException是否“正确”?或者这是否将Iterator接口(interface)延伸得太远了一点?所有的想法都得到了赞赏? 最佳答案 我可能在这里遗漏了一些东西,但为什么不在您的实现内部调用hasNext()? 关于Jav

Java 8 方法引用类型推断

我对Java8的一些类型推断感到困惑。以下代码:privatestaticFunction,Iterator>toIterator(){returnIterable::iterator;}因编译错误而中断error:incompatibletypes:invalidmethodreferencereturnIterable::iterator;^methoditeratorininterfaceIterablecannotbeappliedtogiventypesrequired:noargumentsfound:Iterablereason:actualandformalargume

java - opencv/javacv : How to iterate over contours for shape identification?

我正在使用JavaCV开发一个形状识别项目,我找到了一些OpenCV代码来识别特定图像中的U形。我试图将它转换成JavaCV,但它没有给出相同的输出。你能帮我把这个OpenCV代码转换成JavaCV吗?这是OpenCV代码:importcv2importnumpyasnpimg=cv2.imread('sofud.jpg')gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)ret,thresh=cv2.threshold(gray,127,255,1)contours,hierarchy=cv2.findContours(thresh,cv2.RETR_

从 Collection 或 Iterable 中获取第 N 个元素的 Java 库

我有一个Collection,需要获取其Iterator返回的第N个元素。我知道我可以在计算其Iterator元素时进行迭代。是否有第三方库(GoogleGuava或ApacheCommons)可以执行此操作? 最佳答案 Guava的Iterators.get可以帮忙Advancesiteratorposition+1times,returningtheelementatthepositionthposition. 关于从Collection或Iterable中获取第N个元素的Java库

java - 为什么 BitSet 不可迭代?

BitSet有一个stream()方法,但它不像其他提供此方法的类型那样实现Iterable接口(interface)。这有什么具体原因吗? 最佳答案 Iterable中的方法(foreach、iterator和spliterator)都没有在中提供>位集。Iterable中没有stream()方法。此外,BitSet的stream()方法不返回位集位上的流,而是返回位集的索引上的流设置值的位(这有点令人困惑TBH)。因此,从技术上讲,这似乎与Iterable几乎没有任何共同之处。 关于

java - 为什么java Iterator接口(interface)应该实现为内部类?

我最近看了一本书《TheJavaTutorials》第三版。如图所示,它讲的是内部类实现。在第3段中,它说“Stack类本身不应实现Iterator接口(interface),因为...”。我找不到Stack类不应该实现Iterator的任何理由。给出的原因并不普遍。你能解释一下吗? 最佳答案 从根本上说,迭代器是有状态的-它需要知道它在集合中指向的何处。这不属于集合本身的一部分——给出的解释是正确的……完全有可能有两个独立的迭代器对象,迭代同一个集合对象。如果集合本身实现了Iterator接口(interface),您将如何建模?

java - 是什么导致了 java.util.HashSet 和 HashMap.keySet() 类的 iterator() 排序有点不可预测?

六年前,我花了几天时间试图找出我的完美确定性框架随机响应的位置。在仔细检查整个框架确保它都使用相同的Random实例之后,我继续通过单步执行代码进行检查。这是高度重复的迭代自调用代码。更糟糕的是,该死的效果只有在完成大量迭代后才会出现。在+6小时后,当我在javadoc中发现HashSet.iterator()的一行表明它不能保证返回元素的顺序时,我终于束手无策。然后,我检查了我的整个代码库,并将HashSet的所有实例替换为LinkedHashSet。低看,我的框架突然变成了确定性的生活!啊!我现在又一次经历了同样的FREAKIN影响(至少这次只有3个小时)。无论出于何种原因,我都错