sortieren von Arrays mit beliebigen Objekten

Status
Nicht offen für weitere Antworten.

chrizz_h

Mitglied
Hi folks,
bevor ich mir wieder das gehirn zermatere frag ich diesmal lieber vorher um rat.
und zwar bekomm ich immer folgende fehlermeldung:

Data.java:8: insertionSort(Comparable[]) in Data cannot be applied to (java.lang.String[])

Das gleich trifft auch fuer arrays vom typ Integer zu.
hab schon so ziemlich alles ausprobiert. mein wunsch ist es, ein array mit beliebigen objekten mittels
verschiedener sortierverfahren zu sortieren.
der code sieht sieht folgendermassen aus:
Code:
public class Data{
    public static void main(String args[]){
        String[] array=new String[4];
        array[0]=new String("Strings");
        array[1]=new String("Sind");
        array[2]=new String("Paarweise");
        array[3]=new String("Vergleichbar");
        selectionSort(array);
        for(int i=0;i<array.length;i++){
                System.out.println(array[i]);
        }
    }

	public static void selectionSort(Comparable array[]) {
    		for (int i = 0; i < array.length; i++) {
    			int min = i;
    			for (int j = i+1; j < array.length; j++)if (less(array[j], array[min]))min = j;
    			swap(array, i, min);
    		}
    }

    private static boolean less(Comparable v, Comparable w) {
    		return v.compareTo(w) < 0;
    } //stuetzklasse fuer selectionSort

    private static void swap(Comparable[] array, int i, int j) {
    		Comparable tmp = array[i];
    		array[i] = array[j];
    		array[j] = tmp;
    }
}

fuer eure tipps waere ich sehr dankbar...
ciao
chrizz
 
Stimmt,
hatte vergessen zu erwaehnen dass ich noch das Interface Comparable im selben Verzeichnis
zu liegen habe. Sieht folgendermassen aus:

Code:
public interface Comparable{
public int compareTo(Object o);
}

Gibt es eine Moeglichkeit die Klasse Data so anzupassen, so dass dieses (oder ein aehnliches) Interface
mit dem gegebenen Sortieralgorithmus benutzt werden kann?
Z.B. public class Data implements Comparable{...}
Oder Frage anders formuliert, wie muesste die Methode compareTo() in der Klasse Data{...} aussehen?
gruss
chrizz
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben