当前位置: 首页 > 知识库问答 >
问题:

LinkedList返回的对象。迭代器()?

璩珂
2023-03-14

将这些视为对象:

Iterator<String> j = LinkedList.iterator();

查看java文档,对于LinkedList类,LinkedList类中没有迭代器方法的实现,但是,实现是在AbstractSequentialList类中。

public Iterator<E> iterator() {
    return listIterator();

listIterator()方法在AbstractList类中实现,AbstractSequentialList的父类,总结一下,如果我没弄错的话,它返回一个不使用节点概念的迭代器对象。

   public ListIterator<E> listIterator() {
    return listIterator(0);
}
private class ListItr extends Itr implements ListIterator<E> {
    ListItr(int index) {
        cursor = index;
    }

但是listIterator(int index)方法是在LinkedList类中实现的,并且使用节点的概念。

 public ListIterator<E> listIterator(int index) {
    checkPositionIndex(index);
    return new ListItr(index);
}

private class ListItr implements ListIterator<E> {
    private Node<E> lastReturned;
    private Node<E> next;
    private int nextIndex;
    private int expectedModCount = modCount;

那么回到j,它是来自“根”类AbstractList的迭代器,还是使用了实现LinkedList类?

共有1个答案

司马耘豪
2023-03-14

好吧,由于iterator()返回listIterator()listIterator()返回listIterator(0),并且listIterator(int index)LinkedList覆盖,LinkedList方法返回LinkedList$ListItr的实例。

 类似资料:
  • 问题内容: 有没有一种方法来获取数组的迭代器?像这样: 问题答案: 您可以使用: 它只是将数组包装在列表实现中,以便您可以在其上调用方法。 请注意,这种方法仅适用于对象数组。对于原始数组,您将必须实现自己的迭代器(例如,使用匿名类)。 从Java 8开始,您还可以使用开箱即用的迭代器(并且如果是或,也可以使此代码进行编译: 尽管您将无法使用原始数据类型,并且因为没有相应的流实现。但是,您可以使用以

  • 问题内容: 我有一个服务方法,该服务方法调用DAO,然后从数据库中返回一个对象。从系统的许多部分调用此方法。但是,一种特定的方法是将ObjectClass _ $$ _ javassist_somenumber的返回类型作为该类型。这是丢东西。我将service方法称为与其他任何地方完全相同的方法,那么为什么hibernate会返回代理而不是自然对象? 我知道有很多方法可以暴露“代理”对象,但是我

  • 问题内容: 我正在编写GC友好的代码,以读取并向用户返回一系列消息。在内部我重用相同的实例,这意味着我将在 大多数时候 重复返回同一实例。 我正在考虑编写警告性javadoc并将其作为暴露给用户。AFAIK不会违反合同,但是如果用户这样做并返回每个位置的填充物,用户肯定会感到惊讶! 问题:对于 可能会变异并返回相同对象* 以实现接口的类,这是 不好的做法 吗? * 如果是这样,最好的选择是什么?“

  • LinkedList迭代器next()即使在hasNext()返回true后调用,也不会引发任何TouchElementException。 环境:Sun Solaris上的Java6 知道为什么我在Next()方法调用时遇到这个异常吗? 使用更多代码更新

  • 我正在尝试使用方法,但它正在重新生成类的对象哈希代码,例如: 但是,我可以检索用户。没有任何问题和所有关系的专业知识: 这是我的Gson方法: 这是我的MyTypeAdapter: } 那么,如何让实际返回一个Json字符串,以便我可以使用Gson. FromJson在我的另一端?提前谢谢。

  • 问题内容: 我正在尝试迭代由numpy.linspace生成的值的数组: 这段代码在我的办公室计算机上工作正常,但是今天早上我坐下来在另一台机器上在家工作,出现了此错误: 只是一个浮点数数组,脚本在打印内容时没有问题-只是显然对它们进行了迭代。关于导致它损坏的原因的任何建议以及可能的解决方法? 问题答案: 给您一维NumPy数组。例如: 因此: 无法工作。您将需要某种二维数组,在第二维中具有两个元