Mehrdimensionale Arrays Sortieren

DummerBauer

Mitglied
Hallo leider muss ich nochmal eure Hilfe in Anspruch nehmen.
Wie im Titel erwähnt habe ich ein Problem mit dem sortieren von einem Array.
Das Programm soll den Array alphabetisch (also nur die Strings in der 1.Spalte und die anderen sollen "mitziehen")sortieren.Mit immer unterschiedliche Strings kommt es klar nur leider nicht auch mit gleichen.
Wie kann ich das jetzt am besten lösen?

Hier ist meine Klasse
Java:
public class CV 
{
    public static void CV1()
    {

        Object[][] CV2=new Object[Spei.Daten.length][4];
        String [] CV5=new String[Spei.Daten.length];
        for (int CV4=0;CV4<Spei.Daten.length;CV4++)
        {
        CV5[CV4]=Spei.Daten[CV4][0].toString();
        }

        java.util.Arrays.sort(CV5);
        Object[][]Daten2=new Object[Spei.Daten.length][4];
        for (int CV8=0;CV8<CV5.length;CV8++)
        {
            System.out.println(CV5[CV8]);
            for(int CV9=0;CV9<Spei.Daten.length;CV9++)
            {
                if(CV5[CV8].toString().equals(Spei.Daten[CV9][0].toString()))
                {
                    Daten2[CV8][0]=Spei.Daten[CV9][0];
                    Daten2[CV8][1]=Spei.Daten[CV9][1];
                    Daten2[CV8][2]=Spei.Daten[CV9][2];
                    Daten2[CV8][3]=Spei.Daten[CV9][3];                   
                }
                else
                {                  
                }
            }
        }
        Spei.Daten=new Object[Daten2.length][4];
        Spei.Daten=Daten2.clone();
    }
}
 
Wieso verwendest du nicht einfach eine eigene Klasse, welche du in einem Array oder einer [c]List[/c] sortieren kannst? Einfach das Interface [c]Comparable[/c] implementieren und das Sortieren funktioniert mit [c]Arrays.sort()[/c] bzw. [c]Collections.sort()[/c].
 
So eine eigene Klsse könnte allein von der Modellierung her gerechtfertigt sein. Aber selbst so könnte man noch einen Comparator verwenden (gibt's auch nen FAQ-Eintrag dazu)
 
Man könnte natürlich auch die einzelnen Strings mit dem Trennzeichen 0x00 konkatenieren, das neue eindimensionale Array sortieren, und die sortierten Strings anschließend wieder aufsplitten. Eine häßliche Lösung, aber man muss ja nicht jeden Block von 5 Codezeilen unbedingt nach dem Lehrbuch gestalten... :joke:
 
Es ist mir echt zu mühsam, diesen Code verstehen zu versuchen. Da fehlen nur schon sprechende Namen.
Natürlich könnte mit einem Comparator das Array sortiert werden. Aber mal ehrlich, da macht man sich gleich eine Klasse daraus, dann versteht man den Code auch in zwei Stunden noch...
 

Zurück
Oben