2012-03-11 50 views
0

我正在處理數據結構分配,因此我沒有在java中使用內置的Linkedlist。我需要按字母順序排列節點。我可以使用內置的這種類型的分類嗎?這項任務並沒有強調我們的排序方法,所以我正在尋找最簡單的方法。該IDE抱怨我的列表參數,它讓我覺得也許這不是一種可能性?:按字母順序排序鏈接列表

Collections.sort(list, new Comparator<String>() 
{ 
@Override 
public int compare(String text1, String text2) 
{ 
    return text1.compareToIgnoreCase(text2); 
} 
}); 
+2

IDE究竟抱怨什麼? – paislee 2012-03-11 23:17:23

+0

從下面列出的問題,我會建議只寫你自己的排序。最簡單的就是冒泡排序。 – Steven 2012-03-11 23:29:17

回答

1

不行,你只能排序它們實現java.util.List的使用內置的方法列表。

+0

但是,您可以使列表實現List接口,然後您可以執行內置排序。 – 2012-03-12 00:14:44

+0

同意,但鑑於OP正在討論數據結構分配,並且不想使用內置類,似乎公平地概述了實現該接口的唯一方法。 – 2012-03-12 09:53:57

4

爲了能夠使用內置的排序功能列表結構必須實現List<T>接口。

這是根據簽名:

public static <T> void sort(List<T> list, Comparator<? super T> c) 

這意味着,您的自定義列表應該提供的List接口描述的所有方法的實現,你可以找到他們here

你應該有類似

class MyCustomList<T> implements List<T> { 
... 
} 
+0

如果我實現了List接口,我想我不是真的從頭開始構建自己的列表,所以我必須弄髒排序.. – jackie 2012-03-11 23:27:55

+0

這不完全正確,如果你實現你剛剛定義的接口如何通過外部對象訪問列表,但提供您自己的實現。這是必需的,因爲'Collection.sort(...)'方法必須知道如何訪問列表。在任何情況下,作爲數據結構分配,我想你也應該提供你自己的排序算法功能。 – Jack 2012-03-11 23:30:10