我在類EarthquakeDataSet中有一個名爲public void mergeSort()的方法,我創建一個對象並嘗試調用一個sort()方法我的MergeSorter類。 MergeSorter類本身不是我的代碼,它是由其他人編寫的,但我應該調用sort()並使用別人編寫的這個類。我得到確切的錯誤是:「方法排序(E [],比較)在類型MergeSorter不適用於參數」試圖調用一個對象的方法,但無法弄清楚參數
我在EarthquakeDataSet方法是這樣的:
public void mergeSort(){
MergeSorter obj = new MergeSorter();
obj.sort();
}
MergeSorter中的方法我試圖調用另一個方法,它也調用另一個方法。這是我的MergeSorter類。
在MergeSorter這三種方法如下:
public static <E> void sort(E[] a, Comparator<? super E> comp) {
mergeSort(a, 0, a.length - 1, comp); //calling mergeSort method
}
和
private static <E> void mergeSort(E[] a, int from, int to, Comparator<? super E> comp){
}
和
private static <E> void merge(E[] a, int from, int mid, int to, Comparator<? super E> comp) {
}
裏面有代碼公平一點,但我只是有麻煩用這些論據來調用。
我有很多記錄,而且我使用不同的排序方法對所述記錄進行排序。我仍然不確定使用sort方法的參數,但從來沒有使用Comparator作爲參數。 –
那麼,第一個參數將會是你想要排序的記錄數組! [Comparator](http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html)是定義某個類的排序的接口。它通過實現一個函數來實現這一點,該函數採用兩個元素,並說明第一個是「小於」,「等於」還是「大於」第二個。如果要排序的記錄是標準的'ints'或'Strings',那麼Comparator可能已經存在,否則你可能需要編寫自己的(這只是一個簡短的方法)。 –
根據你所說的,它開始變得更有意義。事情是我以多種方式排序。我有這些地震記錄可以根據城市,大小和深度進行排序,所有這些記錄都有來自「EarthquakeRecord []」陣列的變量,但我如何使用比較器作爲第二個參數? –