2017-07-13 28 views
-3

我創建此向量;矢量類排序不工作

Vector<Integer> list = new Vector<>(); 
    list.add(10); 
    list.add(20); 
    list.add(30); 
    list.add(40); 
    list.add(50); 

我試圖對它進行排序如下:

list.sort(); 

但排序方法的括號內我得到這個錯誤:

sort(Comparator) in Vector cannot be applied to();

做什麼參數我要放的括號內排序方法來進行排序工作。

+2

由於編譯器錯誤提示,您需要提供一個「比較器」。 – QBrute

+0

沒有空的'List :: sort'方法。你總是必須提供一個「比較器」。請參閱[文檔](http://docs.oracle.com/javase/8/docs/api/java/util/List.html#sort-java.util.Comparator-) – Flown

+1

否則執行'Collections.sort(list) ;' – soorapadman

回答

1

根據用於矢量類的Java API規範,它實現這是需要使用Collections.sort方法List接口:

Collections.sort(list); 

它將被默認以升序向量元素進行排序

如果要按降序對它們進行排序,可以使用比較器:

Comparator comparator = Collections.reverseOrder(); 

Collections.sort(list,comparator); 
+0

Collections.sort只有在集合元素擴展Comparable自己時纔有效。問題中的代碼使用原始矢量,並且似乎添加了整數,所以他可能會很幸運並且有效。 –