# zweidimensionales Array sortieren



## chillerStudent (8. Mai 2011)

Hallo,

ich möchte x und y koordinaten sortieren. 
Ich bin jetzt nur soweit gekommen, dass ich die Punkte in ein Array gepackt hab. Leider weiß ich nicht wie ich die sortieren soll.


```
public static void main(String[] args) {
		
		System.out.println("Gib zahl: ");
		int punkte=In.readInt();
		
		int [][] array= new int [punkte][2];
		
		int i, j;
		for(i=0;i<array.length;i++){
			for(j=0;j<array[i].length;j++){
				array[i][j]=(int)(Math.random()*29);
				System.out.print(" "+array[i][j]);
			}
			System.out.println("");
		}
		
		Arrays.sort(array);
	}

}
```

Bei Arrays.sort zeigt er immer ein exeption an.


----------



## XHelp (8. Mai 2011)

Du kannst einen Comparator schreiben.

Außerdem P1(1,2)und P2(2,1)... welcher ist größer?

P.S. Immer wenn man Sätze wie "Ja, da ist ein Fehler", "Ja, da kommt eine Exception" Benutzt, sollte man auch angeben welche Exception/Fehler das ist


----------



## Dekker (8. Mai 2011)

Ich glaube das kann man nur auf 1-Dimensionale Arrays anwenden. Du kannst es zum funktionieren bringen glaube wenn du anstatt 2 Dimensionen für x und y daraus einen 1-Dimensionalen Array machst der dann eine Klasse wie z.B. Punkt enthält und das CompareTo interface implementiert. 

edit: Dang to slow =/


----------



## s4ke (8. Mai 2011)

chillerStudent hat gesagt.:


> Hallo,
> 
> ich möchte x und y koordinaten sortieren.
> Ich bin jetzt nur soweit gekommen, dass ich die Punkte in ein Array gepackt hab. Leider weiß ich nicht wie ich die sortieren soll.
> ...



Eine Matrix ist im Grunde nichts anderes, als ein Array aus Arrays, d.h. du musst die Arrays so durchgehen: Arrays.sort(matrix[1,2,3,4 oder was halt zutrifft]);

EDIT: Okay, jetzt hab ich verstanden, was du vor hast. Kommando zurück.


----------



## chillerStudent (8. Mai 2011)

Man soll selbst einscheiden, ob man nach x oder nach y sortieren will. Dafür erfolt am ende eine Abfrage.
Gibt es keine andere Möglichkeit für das sortieren? Denn mit 2 eindimensionales Array, hab ich es auch schon ausprobiert und er hat mir entweder nur x sortiert oder y, aber nie paarweise....


----------



## Dekker (8. Mai 2011)

chillerStudent hat gesagt.:


> Man soll selbst einscheiden, ob man nach x oder nach y sortieren will. Dafür erfolt am ende eine Abfrage.
> Gibt es keine andere Möglichkeit für das sortieren? Denn mit 2 eindimensionales Array, hab ich es auch schon ausprobiert und er hat mir entweder nur x sortiert oder y, aber nie paarweise....



Naja, andere Möglichkeiten:

Quicksort oder Mergesort an deine Bedürfnisse anpassen.


----------



## XHelp (8. Mai 2011)

Mach dir eine vernünftige Datenstruktur. http://www.java-forum.org/java-basics-anfaenger-themen/117754-array-sort-arrays-ausgeben.html hier wird ein ähnliches Problem + Lösungen beschrieben.


----------

