1
的方法裏面我有一堆添加到待辦事項列表list2016
日期的,現在我需要這些待辦事項列表項目按日期進行排序(第一最快,最新的最後一個)。排序日期鏈表
應該一切發生我add
方法裏面,但我不知道怎麼做。有任何想法嗎?
public class ToDoListEntry
{
String task;
LocalDate date;
ToDoListEntry next;
public ToDoListEntry(LocalDate date, String task)
{
this.task = task;
this.date = date;
}
}
然後是下一個,我想補充一個數組,但沒有工作:
public class ToDoList
{
ToDoListEntry first;
int size;
public ToDoList()
{
first = null;
size = 0;
}
public void add(ToDoListEntry newTask)
{
if (first == null)
{
first = newTask;
}
else
{
ToDoListEntry zeiger = first;
while (zeiger.next != null)
{
zeiger = zeiger.next;
}
zeiger.next = newTask;
}
size++;
}
public String print()
{
String result = "";
if (first == null)
{
result = "Empty list!\n";
}
else
{
ToDoListEntry pointer = first;
while (pointer != null)
{
result += "Until " + pointer.date + " Task: " + pointer.task + "\n";
pointer = pointer.next;
}
}
System.out.println(result);
return result;
}
}
而在最後,主類。它應該創建一個新的ToDoList
,並打印出來(請注意,我並沒有包括print()
法):
public class MyMainClass
{
public static void main(String[] args)
{
System.out.println("Test 00: Empty List");
ToDoList list2016 = new ToDoList();
list2016.print();
System.out.println("Test 01: add");
list2016.add(new ToDoListEntry(LocalDate.of(2016, 8, 15), "Do workout"));
list2016.add(new ToDoListEntry(LocalDate.of(2016, 6, 3), "Buy apples"));
list2016.add(new ToDoListEntry(LocalDate.of(2016, 10, 11), "Read Books"));
list2016.print();
}
}
你會如何做手工嗎?假設您已經對發票進行了排序,並且您發現一張舊發票必須插入到一堆發票的正確位置。你的戰略是什麼? –
你爲什麼不使用內置的集合象一個ArrayList/LinkedList的(而不是創建自己的實現鏈表),並使用自定義排序比較呢? – Keammoort
是否有一個原因,你必須創建自己的鏈表結構,而不是使用Java集合類?即這是作業嗎? – paisanco