依次打印LinkedList列表,向前和向后



我试图创建一个包含20个对象的linkedlist,然后向前迭代,然后向后迭代,但我无法弄清楚如何通过列表向后移动,linkedlist类中没有内置方法。

我也想知道是否有一种方法来随机生成姓和名。

这是类

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


    } 
}

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

这是javadoc

返回一个反向遍历该deque中的元素的迭代器顺序排列的。元素将按最后的顺序返回(尾)到首(头)

使用

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

相关内容

  • 没有找到相关文章

最新更新