Mehrdimensionales Array sortieren

stoi

Mitglied
Hallo,

Wie kann ich ein Mehrdimensionales Array sortieren?

Java:
String[][] test = String[10][10];
String[0][0]= String.valueOf(doublevariable);
String[0][1]="Test";
String[1][0]= String.valueOf(doublevariable2);
String[1][1]="Test2";

Ich weiß, das ein einfaches Array über Array.sort sortiert werden kann, aber ich möchte, dass der String auch mitsortiert wird. Habt ihr Ideen?

Viele Grüße
stoi
 

ursteiner

Mitglied
Stehen diese beiden Werte in einer festen Beziehung?

Code:
String[0][0]= String.valueOf(doublevariable);
String[0][1]="Test";

Dann sollte man das nicht über ein mehrdimensionales Array lösen.

Schreib dir eine Klasse mit den 2 Attributen. Dann erzeugst du für jedes dieser Paare ein Objekt und steckst es in eine Liste. Danach musst du dir für deine Klasse nur noch einen Komparator schreiben und mit Collections.sort(...) kannst du dann deine Liste sortieren.
 

stoi

Mitglied
Ja, ich möchte Monate sortieren.
Es werden zuerst für jeden einzelnen Monat Standardabweichungen berechnet, und diese möchte ich nach der Größe sortieren. Und dazu soll der zugehörige Monat mitsortiert werden.
Ich probiere es wie oben beschrieben, danke!
 

strußi

Top Contributor
Mein Angebot: Eine Methode , die eine Matrix nach einer Spalte sortiert.

Java:
/**
     * Methode zum Sortieren einer beliebigen Spalte in einem 2Dimensionalen Array
     * @param toSort Array dessen Werte sortiert werden sollen
     * @param colToSort Spalte die sortiert werden soll A C H T U N G - die Zahl muss dem ArrayIndex der Spalte entsprechen
     * @return double[][] mit den sortieren Werten  
     */
    public double[][] sort( double[][] toSort, int colToSort){
        int zeilen =toSort.length; //Zeilenanzahl auslesen
        int spaltenAnzahl =toSort[ zeilen-1].length; //Spaltenzahl auslesen
        int inZeile =0; //Variable für die Zeile in die aus toSort kopiert werden soll
        double vMax =toSort[ 0][ colToSort]; //Anfangswert aus dem zu sortierenden Array auslesen und setzen
        double vMax2 =vMax; //Variable für größten Wert 
        double vMin =0; //Variable für den kleinesten Wert im Array der >0 ist 
        int vMinInZeile =0; //Variable in welcher der Zeilenwert gespeichert wird, in der der kleinste Wert gefunden wurde
        double[][] retVal =new double[ zeilen][ spaltenAnzahl]; //Array in den kopiert werden soll muss die gleiche größe haben wie der Array aus dem Kopiert werdens oll
        if( colToSort <spaltenAnzahl &&colToSort >=0){ //Prüfen ob es die zu sortierende Spalte überhaupt gibt
            while( inZeile <zeilen){ //Solange noch nicht alle Zellen des retVal gefüllt sind
                //Suche den kleinsten Wert
                //erster unbestimmter Suchlauf
                for( int zeilenIndex =0; zeilenIndex <zeilen; zeilenIndex++){ //Suchlauf über alle Zeilen auf der Spalte sToSort
                    if( toSort[ zeilenIndex][ colToSort] <vMax && toSort[ zeilenIndex][ colToSort] >=vMin){ //Sucht den kleinsten Wert >0
                        vMax =toSort[ zeilenIndex][ colToSort]; //Obergrenze nach unten setzen bis der kleinste Wert gefunden ist
                        vMinInZeile =zeilenIndex; //Index der Zeile übergeben, in dem der aktuell kleinste wert gefunden ist
                    } else if( vMax2 <toSort[ zeilenIndex][ colToSort]){ //Prüfen ob der bisherige absolute Maximalwert kleiner ist als als der gerade geprüfte Wert
                        vMax2 =toSort[ zeilenIndex][ colToSort]; //Größter Wert speichern, um für Spätere Durchläufe eine Referenz zu haben
                    } else{} //Im Sonstfall nichts tun
                }
                vMin =vMax; //die Varaible für den kleinsten Wertes mit der gefunden Zahl belegen
                //Ersten Datentupel sichern
                for( int spalte=0; spalte <spaltenAnzahl; spalte++){ //kopieren des einen, sicheren Datentupels und überschreiben des inputs mit 0
                    retVal[ inZeile][ spalte] =toSort[ vMinInZeile][ spalte]; //Kopieren des Datentupels
                    toSort[ vMinInZeile][ spalte] =0; //überschreiben mit 0 damit fällt dieser Datentupel aus der Prüfung  "Suchlauf"
                }
                inZeile++; //Zählervariable des retVal[] in die als nächstes gespeichert werdensoll
                //Abfangen von OutOfBounds
                if( inZeile <zeilen){ //Prüfen ob die Zählervariable noch kleiner ist als die Anzahl der vorhandenen Zeilen
                    //Zweiter Suchlauf nach einer bestimmten Zahl /Wert
                    for( int i =0; i <zeilen; i++){ //Suchlauf über alle Zeilen
                        if( toSort[ i][ colToSort] == vMin && i !=vMinInZeile){ //Prüfen in der Zelle der i-ten Zeile und der zu sortierenden Spalte (sToSort) der gleiche Wert nochmal vorkommt
                            for( int col=0; col <spaltenAnzahl; col++){ //Positiver Fall; den Datentupel kopieren
                                retVal[ inZeile][ col] =toSort[ i][ col]; //Datentupel kopieren
                                toSort[ i][ col] =0; //Gefundener Datentupel mit 0 überschrieben
                            }
                            inZeile++; //Zählervariable auf die nächste Zeile setzen
                            //Abfangen von java.lang.ArrayIndexOutOfBoundsException
                            if( inZeile <zeilen){ //Solange die Zählervariable kleiner als die gesamtzahl der Zeilen ist muss nichts unternommen werden
                            } else{
                                break; //beenden der Sortierung, sonst läuft man in java.lang.ArrayIndexOutOfBoundsException
                            }                            
                        } else{} //Im Sonstfall nichts tun soSort[i][sToSort] != vMin
                    }
                    vMax =vMax2+1; //Der Variablen vMax wird der größte, im Array vorkommenden Wert zugewieden.
                                   //Die Erhöhung um 1 ist nötig, da auf echt < geprüft wird 
                } else{
                    break; //beenden der Sortierung, sonst läuft man in java.lang.ArrayIndexOutOfBoundsException
                } //inZeile ist >=der Anzahl der vorhandenen Zeilen
            }
        } else{ //Fehlermeldung bei der Nutzung in 
            except.MyException miss =new MyException(); //Object von der Fehlerklasse SortierenFehler erstellen
            miss.spaltenFehler( spaltenAnzahl-1); //Aufruf der Methode spaltenFehler( int) mit dem Parameter wieviele Spalten es gibt
        }        
        return retVal; //Das Sortierte Array zurückgeben
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Mehrdimensionales Array sortieren Java Basics - Anfänger-Themen 5
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
OZAN86 Mehrdimensionales Array Java Basics - Anfänger-Themen 4
W Eigener Iterator soll mehrdimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
nightsky_ Mehrdimensionales Array mit flatMap() ausgeben lassen Java Basics - Anfänger-Themen 6
N Alternative für mehrdimensionales Array Java Basics - Anfänger-Themen 25
K Mehrdimensionales Array Java Basics - Anfänger-Themen 4
Y Mehrdimensionales Array diagonal abfragen. Java Basics - Anfänger-Themen 5
N Mehrdimensionales float Array aus .txt-Datei einlesen? Java Basics - Anfänger-Themen 17
F Mehrdimensionales Array durchsuchen Java Basics - Anfänger-Themen 8
S Mehrdimensionales Array füllen Java Basics - Anfänger-Themen 1
N Unsymmetrisches mehrdimensionales Array in eindimensionales umwandeln Java Basics - Anfänger-Themen 2
H Mehrdimensionales Array - Inhalt auf Null überprüfen Java Basics - Anfänger-Themen 5
J mehrdimensionales array Java Basics - Anfänger-Themen 2
M Mehrdimensionales Array initialisieren Java Basics - Anfänger-Themen 3
M Methoden Daten aus einer SQL-Abfrage in eine mehrdimensionales Array einlesen Java Basics - Anfänger-Themen 7
F.S.WhiTeY Mehrdimensionales array, größere zahlen von innen nach außen Java Basics - Anfänger-Themen 3
S Mehrdimensionales Char-Array initialisieren Java Basics - Anfänger-Themen 17
Joy drei- und mehrdimensionales Array deklarieren Java Basics - Anfänger-Themen 9
D Datentypen mehrdimensionales Array meherer Typen möglich ? Java Basics - Anfänger-Themen 6
E Mehrdimensionales Array automatisch befüllen Java Basics - Anfänger-Themen 9
Z mehrdimensionales Array, Matrix "invertieren" Java Basics - Anfänger-Themen 4
B Mehrdimensionales Array + Tiefe Java Basics - Anfänger-Themen 4
F Mehrdimensionales Array zweite Diemnsion später Konstruieren? Wie Java Basics - Anfänger-Themen 2
B Mehrdimensionales Array Java Basics - Anfänger-Themen 9
bigbasti Mehrdimensionales Array instanzieren Java Basics - Anfänger-Themen 10
K Größe, mehrdimensionales Array Java Basics - Anfänger-Themen 6
S Mehrdimensionales Array füllen und kopieren! Java Basics - Anfänger-Themen 14
D Mehrdimensionales Array Java Basics - Anfänger-Themen 6
D String in mehrdimensionales Array Java Basics - Anfänger-Themen 7
S Mehrdimensionales Array+Methode+Rückgabeschwierigkeiten Java Basics - Anfänger-Themen 8
J Mehrdimensionales Array im Http-Request Java Basics - Anfänger-Themen 5
I dynamische mehrdimensionales Array Java Basics - Anfänger-Themen 8
G Rückgabe mehrdimensionales Array Java Basics - Anfänger-Themen 3
L zahlen in mehrdimensionales array einlesen Java Basics - Anfänger-Themen 3
C mehrdimensionales Object sortieren Java Basics - Anfänger-Themen 4
A Datentypen Größe eines mehrdimensionales Arrays Java Basics - Anfänger-Themen 4
C Problem: Mehrdimensionales Arry Java Basics - Anfänger-Themen 10
A mehrdimensionales ArrayList Java Basics - Anfänger-Themen 7
A Zeichenkette teilen mit Substring oder Char Array Java Basics - Anfänger-Themen 14
A 6. Element aus einem Array zurückgeben Java Basics - Anfänger-Themen 1
A Was bedeutet bei einem Array "int a [MAX][MAX];", Java Basics - Anfänger-Themen 7
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben