我试图创建一个包含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());
}