gpt4 book ai didi

java - 在 Java 中实现双向链表中的 Iterable

转载 作者:太空宇宙 更新时间:2023-11-04 08:43:26 25 4
gpt4 key购买 nike

我构建了一个 DoublyLinkedList,它具有所有常规方法(add()、remove()、isEmpty()、size() 等)

此列表保存具有 ListNode next、ListNode prev 和 T inf 字段的 ListNode。 (这里也非常简单/经典)

我的问题是,如何使我的 DLL 可迭代。根据我收集的信息,我需要实现 Iterable 接口(interface),并定义一个返回 Iterator 的 iterator() 方法。

这是我不明白的部分。 iterator() 方法有什么作用?怎么写呢?

任何指示表示赞赏。提前致谢PS:我知道我应该使用java包中已有的容器,但在这种情况下我需要自己做。

最佳答案

iterator() 方法将返回额外类的实例。这将跟踪迭代器所在的节点,并允许您检查是否存在更多节点(通过 hasNext())并移动到下一个节点(通过 next())。

这个必须是一个与列表本身不同的对象,因为可以有多个迭代器同时遍历同一个集合。基本上,这是一个额外的状态:你在哪里。不要忘记迭代器在第一个元素之前开始,从逻辑上讲 - 对 next() 的第一次调用移动到第一个元素。

关于java - 在 Java 中实现双向链表中的 Iterable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4821842/

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