我有一个名为ListNode
的类,其作用类似于列表。使用这个类我想建立一个Magazine对象列表。在我的MagazineList
类中,我想编辑add方法,因此当我插入Magazine
时,它们将按字母顺序排序。我怎样才能做到这一点?
我的ListNode
课程:
public class ListNode {
private Object value;
private ListNode next;
//intializes node
public ListNode (Object initValue, ListNode initNext) {
value = initValue;
next = initNext;
}
//returns value of node
public Object getValue () {
return value;
}
//returns next reference of node
public ListNode getNext () {
return next;
}
//sets value of node
public void setValue (Object theNewValue) {
value = theNewValue;
}
//sets next reference of node
public void setNext (ListNode theNewNext) {
next = theNewNext;
}
}
我的MagazineList
课程的添加方法:
//when instantiated, MagazineList's list variable is set to null
public void add (Magazine mag) {
ListNode node = new ListNode (mag, null);
ListNode current;
if (list == null)
list = node;
else {
current = list;
while (current.getNext() != null)
current = current.getNext();
current.setNext(node);
}
}
我使用此方法来比较Magazines
类中的Magazine
:
//compares the names (Strings) of the Magazines.
public int compareTo(Magazine mag2) {
return (title).compareTo(mag2.toString());
}
答案 0 :(得分:1)
喜欢这个
//compares the names (Strings) of the Magazines.
public int compareTo(Magazine mag2) {
//assume that you have getTittle() method which returns Title
return title.compareTo(mag2.getTitle());
}
答案 1 :(得分:1)
执行此操作的一种简单方法是始终对列表进行排序。
然后,每次从头部开始插入新节点时,应使用compareTo
方法将新节点与列表中的每个节点进行比较,并在节点之后插入新节点{ {1}}返回正数。
基本实现可能是这样的。你需要改进它并考虑边缘情况等。
compareTo