java - 按顺序、向前和向后打印 LinkedList 列表

标签 java linked-list

我试图创建一个包含 20 个对象的链表,然后向前迭代,然后向后迭代,但我不知道如何向后移动列表,LinkedList 类中没有内置方法。

我还想知道是否有一种方法可以随机生成名字和姓氏。

这是类(class)

import javax.swing.JOptionPane;
import java.util.*;

public class Class {


    public static void main(String[] args) {


        LinkedList roster = new LinkedList();

        for(int i=0; i<2; i++){
           Student stu = new Student();
           stu.id = i;
           stu.populateName(JOptionPane.showInputDialog("Please enter a first name"), JOptionPane.showInputDialog("Please enter a last name"));
           roster.add(stu);


    }
        Iterator<Student> it=roster.iterator();
            while (it.hasNext()) {

            Student st=it.next();
            JOptionPane.showMessageDialog(null, st.firstName + " " + st.lastName);
            }




    } 
}

最佳答案

您可以使用<a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#descendingIterator%28%29" rel="noreferrer noopener nofollow">LinkedList.descendingIterator()</a> (从 Java 1.6 开始就存在)

这是javadoc

Returns an iterator over the elements in this deque in reverse sequential order. The elements will be returned in order from last (tail) to first (head).

使用

    LinkedList<Integer> ll = new LinkedList<Integer>();
    ll.add(1);
    ll.add(2);
    ll.add(3);

    System.out.println("Normal traversal");
    for(Iterator<Integer> i = ll.iterator(); i.hasNext();) {
        System.out.println(i.next());
    }
    System.out.println("Reverse");
    for(Iterator<Integer> i = ll.descendingIterator(); i.hasNext();) {
        System.out.println(i.next());
    }

还有另一种方法可以使用 LinkedList.listIterator(index) 来执行此操作。方法也是如此

    ListIterator<Integer> i = ll.listIterator(ll.size()); //creates a ListIterator with starting index as the size of LinkedList, to point to the last element
    while(i.hasPrevious()) {
        System.out.println(i.previous());
    }

关于java - 按顺序、向前和向后打印 LinkedList 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23496871/

相关文章:

c - 如何在C中实现单链表

java - 作为 TCP 服务器的 EJB 单例

java - Oracle WCC NoClassDefFoundError : org/xml/sax/EntityResolver when running Apache POI in Custom Component

java - 在 POST 上,传递对象 ID 而不是完整对象

java - Facebook Spring Boot 使用 OAuth2 登录

c++ - 如何在 C++ 中创建链表 vector ?

c - 链表数组类型 'NAME' (又名 'char [41]' )不可分配

java - 升级到 gradle 4.4 和 gradle 构建工具版本 3.1.2 后,文件中出现红线

C链表末尾插入节点

c - 使用链表在堆栈上的推送操作失败