我在 java 中创建了一个通用链表(不是内置链表),并有一个 LinkedList 类、ListInterface 类、Node 类、一个 Dvd 类和一个 DvdManager 类。我的目标是能够将 DVD 添加到链接列表中并按字母顺序打印出来。我已经成功地编写了代码来添加、删除和添加 DVD 的副本到链接列表。但是,我无法弄清楚如何按字母顺序打印列表。我可以使用以下代码打印列表,但它不会根据项目的标题按字母顺序打印:
if (movies.isEmpty()) {
System.out.println("The list is empty.");
} else {
for (int i = 1; i <= movies.length(); i++) {
System.out.println(movies.get(i).getTitle());
}
}
如何让通用类型列表按字母顺序打印?如果你想看一下,这是我的类文件(我把它们放在 pastebin 上,因为它们很长):DvdManager、Dvd、LinkedList、ListInterface和Node。谢谢。
编辑:我使用插入排序解决了这个问题:
public void add(Dvd item) {
DvdNode addThis = new DvdNode(item);
if(head == null) {
head = addThis;
} else if(item.getTitle().compareToIgnoreCase(head.getItem().getTitle()) < 0) {
addThis.setNext(head);
head = addThis;
} else {
DvdNode temp;
DvdNode prev;
temp = head.getNext();
prev = head;
while(prev.getNext() != null && item.getTitle().compareToIgnoreCase
(prev.getNext().getItem().getTitle()) > 0) {
prev = temp;
temp = temp.getNext();
}
addThis.setNext(temp);
prev.setNext(addThis);
}
}