java - 如何使用ListIterator?

标签 java arraylist collections iterator listiterator

我将 ArrayList 的迭代器用作:

List<String> al = new ArrayList<>();
// ----- Logic for adding elements-----
Iterator it = al.iterator();
// logic to retrieve elements----

然后它尝试在 ListIterator 上工作,就像这样。

ListIterator li = al.listIterator();
    while(li.hasNext()) {
        System.out.print(li.next()+" ");
    }

它起作用了......

我尝试用此方法进行向后检索

ListIterator li = al.listIterator();
while(li.hasPrevious()) {
        System.out.print(li.previous()+" ");
    }

但它不起作用。

下面的代码可以运行。

ListIterator<String> li = al.listIterator(al.size());
    while(li.hasPrevious()) {
        System.out.println(li.previous()+" ");
    }

我想知道有一些泛型的概念,但不太清楚。 请明确 Iterator 和 ListIterator 的概念。 为什么 ListIterator 的一种语句有效,而另一种则无效?

最佳答案

第一个从列表的开头开始,因此没有任何先前的元素。

第二个从末尾开始,因此包含前面的元素。

就这么简单。

关于java - 如何使用ListIterator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43437541/

相关文章:

java - 检查 Controller 中的业务逻辑以提供更好的错误消息

java - 基本网络应用程序不适用于 Jersey

java - 如何从另一个类调用run方法?

java - 修改 getter 的结果会影响对象本身吗?

python - 如何将项目添加到 OrderedDict

java - Web 应用程序中如何处理单例?

java - ArrayList 与 LinkedList

java - 以自定义顺序根据其属性对对象的数组列表进行排序

c# - 将 ListBox.SelectedObjectCollection 转换为 ListBox.ObjectCollection?

java - java中如何将一个元素放到ArrayList的顶部