Java 按顺序向前和向后打印LinkedList列表
我试图创建一个包含20个对象的linkedlist,然后向前迭代,然后向后迭代,但我不知道如何向后移动列表,linkedlist类中没有内置方法 我还想知道是否有一种方法可以随机生成名字和姓氏 这是上课时间Java 按顺序向前和向后打印LinkedList列表,java,linked-list,Java,Linked List,我试图创建一个包含20个对象的linkedlist,然后向前迭代,然后向后迭代,但我不知道如何向后移动列表,linkedlist类中没有内置方法 我还想知道是否有一种方法可以随机生成名字和姓氏 这是上课时间 import javax.swing.JOptionPane; import java.util.*; public class Class { public static void main(String[] args) { LinkedList rost
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);
}
}
}
import javax.swing.JOptionPane;
导入java.util.*;
公共课{
公共静态void main(字符串[]args){
LinkedList花名册=新建LinkedList();
对于(inti=0;i您可以使用
(自Java1.6以来就存在)
这是javadoc
反向返回此数据块中元素的迭代器
顺序。元素将按从上一个元素开始的顺序返回
(尾巴)到第一个(头)
用法
这有一个DegendingIterator()
。“按相反顺序返回此数据中元素的迭代器。元素将按从最后一个(尾部)到第一个(头部)的顺序返回。”“has previous()和hasPrevious()方法对于您关于生成名称的问题,请注意这确实很有帮助,但是我如何实际显示输入的名称而不是有关spot-like的信息ClassName@3A4F1FI我明白了,我需要创建一个引用类的对象,这样我就可以通过这种方式获取(迭代器I=lotster.degeneratingiterator();I.hasNext();){Student st=i.next();更好的是,您可以在Student中重写toString()
,并返回name
字段。只需使用sysout(studentObj);
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());
}
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());
}