Anstatt Spalte, Zeile mit Comparator sortieren .

Status
Nicht offen für weitere Antworten.

Cake

Mitglied
Hi, nochmal zur Erinnerung, ich bin ein Newbie. :D Ich brauche Hilfe bei der Sortierung eines Arrays. Ich hatte schon mal ein ähnliches Thema eröffnet, in dem ich nur die erste Spalte sortieren musste. Diesmal muss ich eine Zeile sortieren.

Vorheriges Thema.

Nun, ich habe folgendes Array mit Zufallszahlen:

Code:
int maxSpalte = 4;

int[][] Werte = new int[3][maxSpalte];

Grafische Darstellung:

Array_1.JPG


Zuerst muss ich die erste Spalte sortieren und zwar aufsteigend. Dies klappt auch und zwar habe ich dafür die Klasse "TwoArrayComparator".

Die Klasse "TwoArrayComparator":

Code:
import java.util.Comparator;

public class TwoArrayComparator implements Comparator<int[]>{ 
  public int compare( int[] a, int[] b ){ 
    return a[0] - b[0]; 
  } 
}

Zur Sortierung tippe ich dann einfach:

Code:
Arrays.sort( Werte, new TwoArrayComparator() );

Array_2.JPG


Das Bild unten wird dann vollbracht.

Nun ist es meine Aufgabe, Zeilenweise zu sortieren und zwar wieder aufsteigend. Zur Verdeutlichung die Grafik:

Array_3.JPG


Habe nun versucht, die Klasse "TwoArrayComparator" zu erweitern:

Code:
import java.util.Comparator;

public class TwoArrayComparator implements Comparator<int[]>{ 
  public int compare( int[] a, int[] b ){ 
    return a[0] - b[0]; 
  }
	
 public int compare( int[] a, int[] b, int Spalte ){ 
    return a[1] - a[Spalte]; 
  }
}

Im Code gebe ich dann ein:

Code:
for( int i = 1; i < maxSpalte; i ++ ) {

   Arrays.sort( Werte, new TwoArrayComparator() );
   ...
 }

=> Pünktchen: Hier weiß ich nicht mehr, wie ich das eingeben soll, damit er die zweite Funktion aufruft und somit die Sortierung durchführt.

Wenn die Sortierung abgeschlossen ist, soll dies so aussehen:

Array_4.JPG
 
B

bygones

Gast
nein das geht so nicht. Im Interface Comparator ist nur die Methode compare mit den zwei zu sortierenden Objekten definiert. Sobald du sie erweiterst, d.h. einen neuen Parameter einfügst erkennt Java diese Methode nicht mehr als Teil des Comparators und missachtet sie.

D.h. du müsstest dir die Zeile holen die du sortieren willst und dann mit einem neuen Comparable / Comparator sortieren lassen,
 

Cake

Mitglied
Hi, meine Frage bezieht sich wieder auf das Sortieren. Habe nun ein weiteres Array erstellt, um die Zeilen zu erhalten, die ich dann wiederum sortieren möchte.

Code:
int[][] werteZeile = new int[1][4];

for( int x = 0;  x <= 2; x++ ) {

  for( int i = 1; i <= 4; i++ ) {
         werteZeile[0][i] = Werte[x][i];
      }

}

Arrays.sort( werteZeile, new TwoArrayComparator() );

Versuche nun, das Array "werteZeile" zu sortieren, jedoch funktioniert das nicht. Ich glaube, das Problem liegt in der "TwoArrayComparator" Klasse.
 

Cake

Mitglied
Okey, ich kam gerade nach Hause und habe es mal anders versucht, dass auch geklappt hat, aber ich würde gerne wissen, wie man es durch Änderung der Klasse "TwoArrayComparator" macht.

Der jetztige Stand:

Code:
int[] werteZeile = new int[4]; 

for( int x = 0;  x <= 2; x++ ) { 

  for( int i = 1; i <= 4; i++ ) { 
         werteZeile[i] = Werte[x][i]; 
      } 

  Arrays.sort( werteZeile );

}
 
B

bygones

Gast
ich würde einfach die momentane Zeile sortieren
Code:
int[][] matrix = .....;
Comparator comp = .....;

for(int i = 0; i < matrix.length; i++) {
   Arrays.sort(matrix[i], comp);
 }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R App soll selbstständig reagieren, anstatt via Models Java Basics - Anfänger-Themen 0
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
P Hashmap anstatt LinkedList? Java Basics - Anfänger-Themen 6
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
U buttonarray[this] anstatt buttonarray[index] ? Java Basics - Anfänger-Themen 12
M Anstatt 1 int Rückgabewert, mehrere Rückgaben mit Arraylist Java Basics - Anfänger-Themen 8
J Array anstatt Begriffe als Indizes Java Basics - Anfänger-Themen 14
I Erste Schritte while anstatt for, if und break Java Basics - Anfänger-Themen 10
K Was benutzen anstatt this? Java Basics - Anfänger-Themen 9
K Polymorphie Objektreferenz als Superklasse anstatt des Objekttypes Java Basics - Anfänger-Themen 12
B List list - anstatt ArrayList list = new ArrayList Java Basics - Anfänger-Themen 10
D JTextField anstatt Jbuttons Java Basics - Anfänger-Themen 9
A POI Einlesen Excel Workbook aus BLOB oder von URL anstatt aus Filesystem ? Java Basics - Anfänger-Themen 3
P (Arbeitstag-) Calendar - 9 anstatt 24 Stunden Java Basics - Anfänger-Themen 12
dl85hej Zeitsitschleife anstatt Timer Java Basics - Anfänger-Themen 5
B String.equals(Object) anstatt "=" Java Basics - Anfänger-Themen 3
Horst79 Temp Datei cachen anstatt physikalische Datei im root Verz? Java Basics - Anfänger-Themen 8
G start-oder paint-Methode anstatt Event-Handling-Methode? Java Basics - Anfänger-Themen 3
S StringBuffer anstatt += Java Basics - Anfänger-Themen 8
C Servlets: doPost() etc. anstatt service() Java Basics - Anfänger-Themen 4
D contains bei JTextArea anstatt bei JTextField Java Basics - Anfänger-Themen 8
H private anstatt public Java Basics - Anfänger-Themen 2
C Wie kann ich Grichische Buchstaben ausgeben anstatt latein? Java Basics - Anfänger-Themen 2
M Ausgabe in String anstatt auf Stream Java Basics - Anfänger-Themen 17
E Datenbank Spalte zusammenzählen Java Basics - Anfänger-Themen 2
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
J PdfTable Spalte höher stellen Java Basics - Anfänger-Themen 2
B jTable Spalte summieren Java Basics - Anfänger-Themen 7
K Apache POI Excel Letzte Reihe einer bestimmten Spalte Java Basics - Anfänger-Themen 1
B Wieso wird die Zeile "column" genannt und die Spalte "line"? Java Basics - Anfänger-Themen 12
K Compiler-Fehler Durchschnitt einer Spalte in einem 2D-Array Java Basics - Anfänger-Themen 1
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
K Collections Sortieren nach zweiter Spalte in JTable Java Basics - Anfänger-Themen 18
S Eine Spalte einer CSV Datei ausgeben Java Basics - Anfänger-Themen 2
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
B Zweidimensionales Array Elemente jeder Spalte zählen Java Basics - Anfänger-Themen 9
G Spalte in JTable unsichtbar machen, Zugriff auf Daten ermöglichen Java Basics - Anfänger-Themen 2
A Button in eine bestimmte Spalte platzieren Java Basics - Anfänger-Themen 4
Rayo Lese Zahl in Zeile x aus Spalte y ein! Java Basics - Anfänger-Themen 36
M JTable einzelne Spalte rechtsbündig Java Basics - Anfänger-Themen 2
Kenan89 JTable Spalte nicht editierbar Java Basics - Anfänger-Themen 7
C Spalte einer Textdatei einlesen Java Basics - Anfänger-Themen 10
H JTable Spalte fixieren Java Basics - Anfänger-Themen 2
F ComboBox sowie String in einer JTable Spalte Java Basics - Anfänger-Themen 2
L Spalte aus Array Java Basics - Anfänger-Themen 19
B Werte einer Spalte aus DB in einen Vector schreiben Java Basics - Anfänger-Themen 15
J 2D Array - Zeile+Spalte Streichen Java Basics - Anfänger-Themen 2
Z Focus auf die letze Spalte Java Basics - Anfänger-Themen 9
Z JTable Spalte ausblenden Java Basics - Anfänger-Themen 5
Garret DefaultListModel als Spalte in JTable anzeigen lassen Java Basics - Anfänger-Themen 27
M JTable Spalte ist bigDecimal Java Basics - Anfänger-Themen 2
R java Spalte-, Zeilebearbeitung von txt Dateien Java Basics - Anfänger-Themen 4
M Spalte aus 2d array übergeben Java Basics - Anfänger-Themen 4
F 2DArray jede Spalte Addieren Java Basics - Anfänger-Themen 8
G Problem beim Spalte hinzufügen in meiner tabelle. Java Basics - Anfänger-Themen 6
A String[] array in vertikale Spalte einer JTable ausgeben? Java Basics - Anfänger-Themen 8
B Ausgewählte Spalte aus JTable abfragen Java Basics - Anfänger-Themen 9
D Checkbox in JTable(Spalte) einfügen. Java Basics - Anfänger-Themen 2
B Komponenten einer Zeile, Spalte des GridLayouts hinzufügen Java Basics - Anfänger-Themen 3
N Ermitteln der Spaltenbreite => DATE-Spalte hat Länge 8 ?! Java Basics - Anfänger-Themen 10
G JTable Reihe und Spalte Java Basics - Anfänger-Themen 7
M renderer macht nur 1 spalte bunt Java Basics - Anfänger-Themen 5
G 2 Fragen zu JTable (Spalte färben, Spalte entfernen) Java Basics - Anfänger-Themen 6
D erste spalte eines zweidimensionales Array sortieren ??!! Java Basics - Anfänger-Themen 2
Glühlampe Usereingabe in der gleichen Zeile ausgeben Java Basics - Anfänger-Themen 6
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
padde479 Zeile entfernen TableModel Java Basics - Anfänger-Themen 11
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
G Compiler-Fehler Fehler in Zeile 1 beheben, wie? Java Basics - Anfänger-Themen 9
I Wortkette in umgekehrter Rheinfolge + in neuer Zeile ausgeben Java Basics - Anfänger-Themen 4
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
AkiJou Zeile in 2d Array löschen Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
LFB In einer For-Schleife alles in einer Zeile ausgeben Java Basics - Anfänger-Themen 14
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
dieter000 Wie schreibe ich diese ZEile um? Java Basics - Anfänger-Themen 1
crrnogorka Letzte Zeile einer Tabelle "überschreibt" alle anderen Zeilen Java Basics - Anfänger-Themen 1
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
S Gesamten String in einer Zeile ausgeben Java Basics - Anfänger-Themen 2
J ObjectOutputStream writeChars, komische Zeichen nur in 1. Zeile Java Basics - Anfänger-Themen 2
T Was macht diese Zeile? Java Basics - Anfänger-Themen 9
A Jede x-te Zeile, lösche 10 Zeilen Java Basics - Anfänger-Themen 9
L Tiefe Kopie einer Zeile eines zweidimensionalen Arrays Java Basics - Anfänger-Themen 1
B Code Zeile unklar Java Basics - Anfänger-Themen 9
ruutaiokwu Ausgegebene Zeile ersetzen mit neuem Text Java Basics - Anfänger-Themen 3
F Zeile in Ordner Java Basics - Anfänger-Themen 4
jaleda100 JTextArea Zeile einfügen Java Basics - Anfänger-Themen 1
M BufferedReader neue Zeile nach Knopfdruck Java Basics - Anfänger-Themen 9
F Mehrere Zeilen zu einer Zeile zusammenfügen und in eine Datei schreiben Java Basics - Anfänger-Themen 1
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben