2012-03-11 70 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