2D Array sortieren

robse

Mitglied
Hallo,
ich habe schon lange nach einer Lösung für mein Problem gesucht, habe jedoch noch keine gefunden und deswegen wende ich mich jetzt hierher:
Ich möchte ein 2D String Array sortieren. Die Werte sehen wie folgt aus:
String[0][0]= test23;
String[0][1]=Beschreibung;
String [1][0]=test12;
String[1][1]=Beschreibung2;

Die Beschriftung "test" ist fest. Er soll im Prinzip nach der Zahl hinter dem"test" sortieren.
Ich habe schon ein Teil des Programms geschrieben, um bei String[x][0] die Zahl hinter "test auszulesen und mit bubblesort zu sortieren:
[Java]
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test3{
public static void main(String args[]){
String str[][]=new String[][]{};
str[0][0]= "test23";
str[0][1]="Beschreibung";
str[1][0]="test12";
str[1][1]="Beschreibung2";

boolean check = false;
while (!check) {
check = true;
String a[]=new String[]{};
String b[]=new String[]{};
for (int i = 0; i < str.length - 1; i++) {
for (int x = 0;x < 2;x++ ){
a[x]=str[x];
b[x]=str[i+1][x];
}
String p = str[0];
String p2 = str[i+1][0];
Pattern pattern=Pattern.compile("\\d\\d*");
Matcher matcher=pattern.matcher(p);
Matcher matcher2=pattern.matcher(p2);
int t = Integer.parseInt (matcher.group());
int t2 = Integer.parseInt (matcher2.group());

if (t > t2) {
String temp[];
temp=b.clone();
for(int x=0;x<2;x++){
str[i+1][x] = a[x];
str[x] = temp[x];
}
check = false;

}
}

}
for(int i=0;i<str.length;i++){
for(int n=0;n<str.length;n++){
System.out.println(str[n]);
}
}
}
}
[/Java]
Es kommt jedoch folgende Fehlermeldung:


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Test3.main(Test3.java:12)

Gäbe es noch eine einfachere Variante?

Danke und viele Grüße

Robse
 
Zuletzt bearbeitet:

robse

Mitglied
Er soll nach dem Wert der ersten Zeile sortieren aber die kompletten Zeilen dann verschieben.

es sol dann also wie folgt aussehen:
Test12 Beschreibung2
Test23 Beschreibung
 

DerEisteeTrinker

Bekanntes Mitglied
So auf die Schnelle würde ich sagen, dass ich kein mehrdimensionales Array nehmen würde, sondern ein Array aus einer Daten-Klasse, die die Angaben samt SChlüssel (1ste Spalte) aufnimmt und dann kannst du ganz einfach Comperator verwenden und dann brauchst auch kein Sortierungsrad neu erfinden.


Man da war doch einer schneller. Ich muss schneller tippen ;(
 

robse

Mitglied
OK, mit dem Comparator habe ich auch schon experimentiert, aber irgendwie bin ich damit nicht zurecht gekommen. Könnte mir evtl. jemand einen Anfang posten?

Viele Grüße und danke für die schnellen Antworten :)
 

DerEisteeTrinker

Bekanntes Mitglied
OK, mit dem Comparator habe ich auch schon experimentiert, aber irgendwie bin ich damit nicht zurecht gekommen. Könnte mir evtl. jemand einen Anfang posten?

Viele Grüße und danke für die schnellen Antworten :)

Du musst nicht zwangsweise mit Comparator rumwuseln. Wenn du die Datenklasse erstellst, kannst du auch die equals-Methode überschreiben *ein hoch auf die Vererbung*

Java:
@Override
public boolean equals(Object o) {
	if (this == o) {
		return true;
	}

	if ((o == null) || (o.getClass() != this.getClass())) {
		return false;
	}

	<Klasse> <name> = (<Klasse>) o;

// Hier kommt dann das Vergleichen hin zBsp.:
// key.equals(o.key) oder ähnliches

	return false;
}
 

ARadauer

Top Contributor
nicht sehr defensiv...
und das mit dem regex hab ich ausgebaut.. müsste ich mir mal wieder ansehen...
Java:
import java.util.ArrayList;
import java.util.Collections;


public class Projekt implements Comparable<Projekt>
{
	
	private int id;
	private String name;
	private String description;
	
	
	public Projekt(String name, String description)
	{
		this.name = name;
		this.description = description;
		String lastTwo = name.substring(name.length()-2, name.length()); //wie immer du das auch machst.., bei mir hat "\\d\\d*" nicht funktioniert 
        id = Integer.parseInt(lastTwo);
    }
	
	public int getId()
	{
		return id;
	}
	public void setId(int id)
	{
		this.id = id;
	}
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public String getDescription()
	{
		return description;
	}
	public void setDescription(String description)
	{
		this.description = description;
	}
	
	
	public static void main(String[] args)
	{
		ArrayList<Projekt> list = new ArrayList<Projekt>();
		list.add(new Projekt("test23", "Beschreibung"));
		list.add(new Projekt("test12", "Beschreibung2"));
		
		Collections.sort(list);
		
		for(Projekt project : list){
			System.out.println(project);
		}
		
	}

	@Override
	public int compareTo(Projekt o)
	{
		if(o.getId()>getId()){
			return -1;
		}else if(o.getId()<getId()){
			return 1;
		}
		return 0;
	}
	
	@Override
	public String toString(){
		return "id:"+id+" name:"+name+" beschreibung:"+description;
	}

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
L Array sortieren Java Basics - Anfänger-Themen 4
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
T Java: Array monat absteigend sortieren? Java Basics - Anfänger-Themen 1
P Array Sortieren mit boolean? Java Basics - Anfänger-Themen 33
scratchy1 Array sortieren und dann String-Repräsentation ausgeben Java Basics - Anfänger-Themen 2
O Zweidimensional Array sortieren Java Basics - Anfänger-Themen 14
K Methoden Array[][] sortieren Java Basics - Anfänger-Themen 30
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
A Array sortieren Java Basics - Anfänger-Themen 1
informatikschüler21 String im Array sortieren Java Basics - Anfänger-Themen 4
U Methoden Zweidimensionales Array mit Arrays.sort sortieren? Java Basics - Anfänger-Themen 22
W Array sortieren Java Basics - Anfänger-Themen 3
S array sortieren Java Basics - Anfänger-Themen 7
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
D Methoden int-Array absteigend sortieren Java Basics - Anfänger-Themen 8
C OOP array Sortieren ohne den sort Befehl Java Basics - Anfänger-Themen 10
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
D Erste Schritte array aufsteigend sortieren und ausgeben Java Basics - Anfänger-Themen 17
C Werte im Array sortieren Java Basics - Anfänger-Themen 5
A Input/Output 2-dimensionales array sortieren Java Basics - Anfänger-Themen 3
J Array nach häufigkeit sortieren Java Basics - Anfänger-Themen 4
S Strings im Array nach Namen sortieren Java Basics - Anfänger-Themen 11
E Array sortieren, es will nicht Java Basics - Anfänger-Themen 6
B Problrm beim Array sortieren Java Basics - Anfänger-Themen 0
S Mehrdimensionales Array sortieren Java Basics - Anfänger-Themen 3
G Array mit BubbleSort sortieren Java Basics - Anfänger-Themen 2
F Array mit Zufallszahlen sortieren Java Basics - Anfänger-Themen 7
N Array sortieren Java Basics - Anfänger-Themen 6
J Methoden Einzelnen Wert aus Objekt aus einem Array auslesen und danach sortieren Java Basics - Anfänger-Themen 8
T Sortieren/Suche klappt nicht ganz (String Array) Java Basics - Anfänger-Themen 2
L Array Sortieren Java Basics - Anfänger-Themen 3
H Sortieren von Array Java Basics - Anfänger-Themen 7
K 2D-Array sortieren Java Basics - Anfänger-Themen 7
I Objekte in einem Array sortieren Java Basics - Anfänger-Themen 19
K Array sortieren Java Basics - Anfänger-Themen 19
P String Sortieren in einem Array Java Basics - Anfänger-Themen 7
T Strings mit compareto vergleichen und array sortieren Java Basics - Anfänger-Themen 14
B Array nach dem Alphabet sortieren Java Basics - Anfänger-Themen 11
J Array mit Objekten sortieren Java Basics - Anfänger-Themen 11
S Array sortieren NULL oder Empty ignorieren. Java Basics - Anfänger-Themen 9
S Array sortieren und ausgeben Java Basics - Anfänger-Themen 3
C zweidimensionales Array sortieren Java Basics - Anfänger-Themen 6
W Objekte in einer Array sortieren Java Basics - Anfänger-Themen 3
A String-Array lexikographisch sortieren Java Basics - Anfänger-Themen 6
A Array einer eigenen Klasse sortieren Java Basics - Anfänger-Themen 11
J 2D Array mit Zeilenverschiebung Sortieren Java Basics - Anfänger-Themen 15
B Zufällige Zahlen in Array sortieren Java Basics - Anfänger-Themen 18
c_sidi90 Array mit Bubblesort sortieren Java Basics - Anfänger-Themen 8
D OOP mit compareTo Array sortieren (aus zwei Klassen) Java Basics - Anfänger-Themen 3
E Array Sortieren Java Basics - Anfänger-Themen 3
B Array durchlaufen und sortieren Java Basics - Anfänger-Themen 9
L Einzeiler - String Array sortieren Java Basics - Anfänger-Themen 16
J Array aufsteigend sortieren Java Basics - Anfänger-Themen 10
D Array nach ungerade zahlen sortieren Java Basics - Anfänger-Themen 6
A Sortieren von Zahlen in einem Array Java Basics - Anfänger-Themen 13
T Zahlen in ARRAY Sortieren Java Basics - Anfänger-Themen 10
N sortieren zweier abhängiger array listen Java Basics - Anfänger-Themen 12
N Array sortieren - Java Basics - Anfänger-Themen 7
T Array mit Integern sortieren Java Basics - Anfänger-Themen 9
M Array anders sortieren, aber die Reihenfolge beibehalten Java Basics - Anfänger-Themen 4
kulturfenster Array mit Strings sortieren Java Basics - Anfänger-Themen 7
D Mehrdimensionales Array sortieren Java Basics - Anfänger-Themen 5
G Array List sortieren / auswerten Java Basics - Anfänger-Themen 24
B 2D-Array (Tabelle) alphabetisch sortieren Java Basics - Anfänger-Themen 6
S array nach 2 kriterien sortieren Java Basics - Anfänger-Themen 3
R Array sortieren Java Basics - Anfänger-Themen 12
G 2D-Array sortieren Java Basics - Anfänger-Themen 11
M ArrayList in Array, dann sortieren Java Basics - Anfänger-Themen 15
R Array sortieren Java Basics - Anfänger-Themen 2
B 2D Array sortieren Java Basics - Anfänger-Themen 15
I Array sortieren oder Tabelle sortieren ? Java Basics - Anfänger-Themen 2
M 2-dimensionales Array sortieren Java Basics - Anfänger-Themen 2
R String-Array sortieren Java Basics - Anfänger-Themen 12
P Array verkleinern und sortieren Java Basics - Anfänger-Themen 11
I Zahlen in Array schreiben und dann sortieren Java Basics - Anfänger-Themen 7
G float-Array _ohne_ Arrays.sort sortieren Java Basics - Anfänger-Themen 5
P Array füllen & sortieren Java Basics - Anfänger-Themen 3
J Array sortieren Java Basics - Anfänger-Themen 4
M Array mit Werten füllen und sortieren Java Basics - Anfänger-Themen 2
O Array sortieren Java Basics - Anfänger-Themen 3
D erste spalte eines zweidimensionales Array sortieren ??!! Java Basics - Anfänger-Themen 2
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
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

Ähnliche Java Themen

Neue Themen


Oben