我有以下情况:我有一个现有的迭代器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,所以我不想这样做。
有什么想法可以解决这个问题吗?