2016-02-07 6 views
0

Если я дал этот метод заголовок:Общая вставкаСort с использованием объекта Comparator в качестве параметра?

/** 
* This generic method sorts the input array using an insertion sort and the input Comparator object. 
*/ 
public static <T> void insertionSort(T[] array , Comparator<? super T> comparatorObj){ 

     // Implement method 
} 

Для Comparator<? super T> comparatorObj части в параметре, действительно ли я предположить, чтобы делать метод объекта компаратора, который говорит, как это должно быть сравнением, когда он используется в параметре сортировки вставок ?

ответ

-2

попробовать это

public static <T> 
void insertionSortGeneric(T[] a, Comparator<? super T> c) { 
    for (int i=0; i < a.length; i++) { 
    /* Insert a[i] into the sorted sublist */ 
    T v = a[i]; 
    int j; 
    for (j = i - 1; j >= 0; j--) { 
     if (c.compare(a[j], v) <= 0) break; 
     a[j + 1] = a[j]; 
    } 
    a[j + 1] = v; }} 
+0

Вы вообще не ответили на вопрос OP. – radoh

+0

используйте этот фрагмент в коде. Он будет defenitely работает, просто используйте цикл для печати. – Akhil

+0

Я спрашивал, нужно ли мне создать объект Comparator, который рассказывает, как сравнивать элементы в общем массиве. – ProjectDefy