【问题标题】:Not getting the output of ListIterator没有得到 ListIterator 的输出
【发布时间】:2018-12-21 02:18:39
【问题描述】:

我正在解决一个我想使用 ListIterator 的问题,此外,我已经在 google 上查看了 ListIterator,但仍然没有得到输出。我的代码如下:

public static void main (String[] args) {
    //code
    Scanner sc = new Scanner(System.in);
    int testCases = sc.nextInt();
    for(int testIndex=0;testIndex<testCases;testIndex++)
    {
        int size = sc.nextInt();
        List<Integer> al = new ArrayList<>();
                int[] arrays = new int[size];
        for(int offset=0;offset<size;offset++)
        {
             al.add(sc.nextInt());
        }
                System.out.println(al);
                System.out.println();
        ListIterator lItr = al.listIterator();
                while(lItr.hasPrevious()){
                    System.out.print(lItr.previous()+" ");
                }
    }
}

我的输入是:1(测试用例数量)4(数组大小)1 2 3 4(数组元素)

我得到的输出是:[1, 2, 3, 4]

它没有给出之前 ListIterator 的输出。

【问题讨论】:

  • 您是否尝试以相反的顺序迭代元素?所有迭代器都从头开始。
  • 是的,我想以相反的顺序迭代列表。

标签: java list


【解决方案1】:

ListIterator 从列表的开头开始,没有任何前面的元素。完全相同的问题是以下问题。 参考this

【讨论】:

    【解决方案2】:

    当您使用listIterator() 创建ListIterator 时,迭代器被初始化为指向List 的开头。因此没有前一个元素。

    可以使用listIterator(int index)从任意位置开始迭代,会有前一个元素。

    要从List 的末尾开始迭代,请使用:

    ListIterator<Integer> lItr = al.listIterator(al.size());
    

    【讨论】:

    • 谢谢,它在在线编译器上工作,但在 NetBeans ide 上不工作。另请参阅此链接java2novice.com/java-collections-and-util/listiterator-example,在 listIterator 中未提及此大小。根据你是正确与否
    • @AsheeshSahu 您的链接示例从 List 的开头开始(因此没有传递给该方法的参数),向前迭代所有元素,然后向后迭代所有元素。您只向后迭代,因此您必须初始化迭代器以指向列表的末尾。在您的 NetBeans 尝试中,该列表可能为空。
    • 表示如果不想在 listIterator 中传递列表的大小,那么首先我必须向前迭代 listIterator?
    猜你喜欢
    • 2021-12-03
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多