gpt4 book ai didi

Java ListIterator 中的哪个元素被认为是前一个?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:26:17 25 4
gpt4 key购买 nike

我目前正在尝试学习如何实现我自己的 ListIterators。除了我对 previous() 方法感到困惑外,我已经实现了其中的大部分并准备就绪。按照标准惯例,我可以解释一下 previous() 通常是如何解释的吗?

即:

             >cursor<
dog cat fish bird frog snake

根据 Oracles Java Platform 7 API:

E 上一个()

返回列表中的前一个元素并将光标位置向后移动。可以重复调用此方法以向后遍历列表,或者与对 next() 的调用混合以来回循环。 (请注意,交替调用 next 和 previous 将重复返回相同的元素。)

我不太明白的是,如果调用 previous(),它会返回“fish”还是“cat”。

我从两个方面理解它:

1) 'fish' 是你之前所在的对象

2) 'cat' 是在数字上位于 'fish' 索引之前的索引处的对象

如果 previous 返回 'fish',那么无论遍历方向如何,remove() 是否实际上删除了相同的元素?

最佳答案

最简单的做法是将光标想象成在两个元素之间。所以一开始,它是 before dog。调用 next() 返回 dog,并将其移动到 dogcat 之间,等等。你已经完成了当光标在之后 snake 时迭代。

所以next()总是返回光标之后的值,并将光标移动到之后的位置。 previous() 总是返回光标之前的值,并将光标移动到它之前的位置。

编辑:正如 David Conrad 在评论中指出的那样:remove() 总是删除 next()previous() 返回的最后一个值。就我上面解释的方式而言,这可能是最不明显的部分……使用您描述的那种“项目上”光标来模拟该行为要容易得多。

关于Java ListIterator 中的哪个元素被认为是前一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24539916/

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