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

Possible to sort generic linked list in Java?

我正在尝试实现 k-means 聚类算法(尽管这个细节不是特别重要),我想在 Java 中使用泛型使其工作。

所以在我的主要class我会调用一个集群方法。我想知道是否可能出现以下情况:

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

显然我 运行 遇到的问题是 T 不能保证实现 Comparable...但是有什么方法可以实现我想要做的事情吗?

这应该有效:

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() 没有 return 任何东西,它就地排序。