按顺序,向前和向后打印链接列表列表

时间:2014-05-06 14:00:08

标签: java linked-list

我正在尝试创建一个包含20个对象的链表,然后向前迭代然后向后迭代但我无法弄清楚如何向后移动列表,在LinkedList类中没有内置方法。 / p>

我也想知道是否有办法随机生成名字和姓氏。

这是班级

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);
            }




    } 
}

1 个答案:

答案 0 :(得分:1)

您可以使用LinkedList.descendingIterator()(自Java 1.6以来就存在)

这里是javadoc

  

反向返回此双端队列中元素的迭代器   顺序。元素将从最后开始按顺序返回   (尾)到第一(头)。

用法

    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());
    }