可以在Java中对通用链表进行排序吗?

时间:2015-11-30 17:20:47

标签: cluster-analysis k-means

我正在尝试实现k-means聚类算法(虽然这个细节并不是特别重要),我想让它在Java中使用泛型。

所以在我的主类中,我将调用一个集群方法。我想知道以下是否可能:

public static <T> void cluster(int k, LinkedList<T> list) {
  // Sort the list
  LinkedList<T> sortedList = Collections.sort(list);
  ...
}

显然我遇到的问题是T无法保证实现Comparable ......但有没有办法实现我想做的事情?

1 个答案:

答案 0 :(得分:1)

这应该有效:

public static <T extends Comparable<T>> void cluster(int k, List<T> list) {
    Collections.sort(list);
    ...
}

<T extends Comparable<T>>确保List<T>保留Comparable<T>元素。

我使用List<T>因为实施(LinkedListArrayList等)并不重要 - 您可以通过List界面访问它。但是,如果您需要LinkedList<T>,则可以使用Collections.sort()

并且<a class="btn-main orange" href="#!/movie-details/ {{movie.Item.DisplayLocation | prettify}}/ {{movie.Item.Title | prettify}}/{{movie.Item.Id}}" id="view--{{$index}}"> View </a> 没有返回任何内容,它就地排序。