我正在尝试创建一个包含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);
}
}
}
答案 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());
}