首页 > 解决方案 > Java中的链表方法

问题描述

我试图了解 .previous() 方法的实际工作原理。

在这一行:

System.out.printf("%s ", a.previous());

它首先在行中打印实际的项目,然后转到上一个项目还是只获取上一个值?

因为 l1.size() 是 5,那么循环条件检查第 5 个位置是否有先前的值?

基本上我只需要知道这是如何按顺序工作的。先感谢您。

    public static void main(String[] args) {
    String[] a = {"apple", "bee", "orange", "noob", "win"};
    List<String> list1 = new LinkedList<String>();
    for (String s : a) {
        list1.add(s);
    }

    System.out.println("List1 Size: " + list1.size());

    reverse(list1);   
}
//reverse method
public static void reverse(List<String> l1) {

    ListIterator<String> a = l1.listIterator(l1.size());
    while (a.hasPrevious()) {
        System.out.printf("%s ", a.previous());
    }

}

标签: java

解决方案


a.previous获取当前值之前的值。它首先检查 currenta是否有一个直接在它之前的值(即指向 value 的节点a)来做到这一点。如果是,则返回该值。然后由您的System.out.println


推荐阅读