我正在尝试实现k-means聚类算法(虽然这个细节并不是特别重要),我想让它在Java中使用泛型。
所以在我的主类中,我将调用一个集群方法。我想知道以下是否可能:
public static <T> void cluster(int k, LinkedList<T> list) {
// Sort the list
LinkedList<T> sortedList = Collections.sort(list);
...
}
显然我遇到的问题是T无法保证实现Comparable ......但有没有办法实现我想做的事情?
答案 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>
因为实施(LinkedList
,ArrayList
等)并不重要 - 您可以通过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>
没有返回任何内容,它就地排序。