Wie kommt es, generische Typ-parameter sagt "erweitert" nicht Vergleichbar "implementiert"?

Ich zu schreiben versucht, generische Funktion, entfernen Sie doppelte Elemente aus array.

public static <E extends Comparable<E>> ArrayList<E> removeDuplicate(E[] arr) {
    //do quicksort
    Arrays.sort(arr);
    ArrayList<E> list = new ArrayList<E>();
    int i;
    for(i=0; i<arr.length-1; i++) {
        if(arr[i].compareTo(arr[i+1]) != 0) { //if not duplicate, add to the list
            list.add(arr[i]);
        }
    }
    list.add(arr[i]); //add last element
    return list;
}

Wie Sie sehen können, kann nicht passieren primitiven Typ wie int[] array, da ich mich vergleichen von Elementen, die von compareTo () - Methode, definiert in Vergleichbaren in-Schnittstelle.

Bemerkte ich die erste Zeile (Methodendeklaration):

public static <E extends Comparable<E>> ArrayList<E> removeDuplicate(E[] arr) {

Kommen, wie es sagt "erweitert Vergleichbar" ?

Vergleichbar ist eine Schnittstelle, also warum ist es nicht "implementieren Vergleichbar"? Dies ist das erste mal, dass ich schrieb generische Funktion, also ich bin bisschen verwirrt über solche Details. (alle Fragen, würde mich davon abhalten, verstehen..)

EDIT: Fand diesen Artikel zu diesem Thema.

http://www.tutorialspoint.com/java/java_generics.htm

InformationsquelleAutor masato-san | 2010-07-24

Schreibe einen Kommentar