我试图创建一个包含 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/