gpt4 book ai didi

java - 迭代器检索第一个值并将其放回同一个迭代器

转载 作者:行者123 更新时间:2023-11-29 03:43:39 24 4
gpt4 key购买 nike

我有以下场景:我有一个现有的迭代器 Iterator<String> it然后我遍历它的头部(比如第一个 k 元素,它们是标记的元素,即它们以 '*' 开头)。知道标记元素结束的唯一方法是注意第 (k+1) 个元素未标记。

问题是,如果我这样做,迭代器 it下次调用 next() 时将不再为我提供第一个值.

我想将这个迭代器传递给一个方法,因为它只是一个参数,我想避免更改它的签名和实现。我知道我可以这样做:

   public void methodAcceptingIterator(Iterator<String> it) //current signature

//change it to

public void methodAcceptingIterator(String firstElement, Iterator<String> it)

但这看起来像是降低了代码的优雅性和通用性的变通方法/hack,所以我不想这样做。

有什么办法可以解决这个问题吗?

最佳答案

您可以使用 Guava 的 PeekingIterator (链接包含静态方法的 javadoc,给定一个 Iterator,将返回一个包装 PeekingIterator)。其中包括一个方法 T peek(),它会向您显示下一个元素,但不会前进到它。

关于java - 迭代器检索第一个值并将其放回同一个迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12012033/

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