Objektarray sortieren

Status
Nicht offen für weitere Antworten.

dk

Mitglied
Erstmal: ja ich habe die Suche benutzt und ne Menge dazu gefunden, wie man Arrays sortiert. aber ich habe entweder kein wort verstanden (wie funktioniert ein verdammter Comperator?? ;)), oder es war nicht hilfreich. daher poste ich mal mein spezielles problem.

ich habe einen Array aus Punktobjekten, die jeweils durch ein x- und y-Wert dargestellt werden.
innerhalb des Punktobjektes gibt es jetzt die Möglichkeit mit abstand(Point p) den Abstand des Punktes zum Koordinatenursprung zu ermitteln.

jetzt sollt der Array, in dem die Punktobjekte in zufälliger Reihenfolge initialisiert wurden, in einer neuen Reihenfolge sortiert werden, nämlich in steigender Entfernung zum Ursprung. sprich:

Array[0] = pointOne; mit den Koordinaten (4,2)
Array[1] = pointTwo; mit den Koordinaten (10,14)
Array[2] = pointThree; mit den Koordinaten (1,1)

wird zu

Array[0] = pointThree; mit den Koordinaten (1,1)
Array[1] = pointOne; mit den Koordinaten (4,2)
Array[2] = pointTwo; mit den Koordinaten (10,14)

wäre nett wenn mir jemand mit Code und vielleicht einer passenden Erklärung helfen kann :)

ps: abstand(Point p) gibt übrigens einen Double zurück
 
B

Beni

Gast
Ein Comparator vergleicht zwei Objekte. Falls das erste Objekt kleiner als das zweite ist: -1 zurückgeben. Wenn erster grösser als zweites: 1 zurückgeben. Wenn gleich 0 zurückgeben.

Mit der "sort"-Methode der Klasse "Arrays" kann sortiert werden (der Comparator sagt der sort Methode, welches Objekt hinter welchem Objekt zu liegen kommt).

Ungefähr so:
Code:
Comparator<Point> c = new Comparator<Point>{
  public int compare( Point a, Point b ){
    int da = a.abstand();  // zum Nullpunkt
    int db = b.abstand();

    if( da < db )
      return -1;
    if( da > db )
      return 1;
    return 0;
  }
};

Point[] array = ... // der kommt von irgendwoher

Arrays.sort( array, c );
 

dk

Mitglied
sorry man, hab das jetzt gerade mal versucht zu übernehmen, aber eclipse zeigt mir nurnoch fehler an :)
und wenn ich es dann mal spaßeshalber in der eingabeaufforderung kompiliere zeigt er mir diesen Fehler an:

ArrayTest.java:45: '(' or '[' expected
Comparator<Point> c = new Comparator<Point>{
^
1 error

mein Code des Comperators sieht im moment so aus

Code:
public class ArrayTest {
	
	...

	Comparator<Point> c = new Comparator<Point>{
		  public double compare( Point a, Point b ){
		    double da = a6.PointUse.abstand(a);  // zum Nullpunkt
		    double db = a6.PointUse.abstand(b);

		    if( da < db )
		      return -1;
		    if( da > db )
		      return 1;
		    return 0;
		  }
	};

	...

}

also entweder habe ich was falsch übernommen, oder irgendwas nicht verstanden :)
 

Illuvatar

Top Contributor
Die Syntax "Comparator<Point>" ist aus der Javaversion 5. Schau mal nach, was du unter "Projekt - Properties - Java Compiler - Compliance Level" eingestellt hast.
 
S

SlaterB

Gast
genau schauen Leute..
das ist kein Generics-Fehler sondern Syntax so wie es die Fehlermeldung sagt,

so gehts:
Comparator<Point> c = new Comparator<Point>() {
...
};
 

dk

Mitglied
hab ich mal geändert, funktioniert immer noch nicht.

die fehlermeldung sieht so aus:

ArrayTest.java:47: <anonymous a8.arrays.dim01.ArrayTest$1> is not abstract and does not override abs
tract method compare(a6.Point,a6.Point) in java.util.Comparator
public double compare(Point a, Point b){
^
1 error

der code dazu so:
Code:
public class ArrayTest {
   
   ...

	Comparator<Point> c = new Comparator<Point>(){
		  public double compare(Point a, Point b){
		    double da = a6.PointUse.abstand(a);  // zum Nullpunkt
		    double db = a6.PointUse.abstand(b);

		    if( da < db )
		      return -1;
		    if( da > db )
		      return 1;
		    return 0;
		  }
	};

   ...

}

freue mich weiterhin über jede hilfe :)
 
S

SlaterB

Gast
> freue mich weiterhin über jede hilfe icon_smile.gif

also wenn ich sowas lese, dann bin ich gleich weg..

der Rückgabewert muss int sein, nicht double..
man darf übrigens auch selber denken ;)
 
S

Sym

Gast
Das steht sogar ziemlich deutlich in der Fehlermeldung. Vielleicht sollte man doch erst mit C++ anfangen und dann Java lernen. Die Fehlermeldung sind dann ein Traum. :D
 

dk

Mitglied
danke für deine hilfe slaterB, auch wenn du ja wohl inzwischen weg bist ;)
natürlich hätte ich das selber finden können, hab ich aber nicht, so wie niemand immer alles entdeckt, was er entdecken kann. trotzdem nochmal danke, auch an die anderen die geholfen haben.
 
S

SlaterB

Gast
nix finden ist ok, sonst wärs ja langweilig im leeren Forum ;)

aber nciht den Eindruck erwecken, du hättest nur zwei Klammern eingefügt und postest nun die nächste Fehlermeldung mit einem fröhlichen
'bitte weiter machen'..
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Objektarray - Speicherverschwendung? Java Basics - Anfänger-Themen 5
S Methoden Objektarray(erfassen) Java Basics - Anfänger-Themen 18
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
B Objekte in ObjektArray speichern und ausgeben Java Basics - Anfänger-Themen 5
M Objektarray Ausgabe Java Basics - Anfänger-Themen 8
w0ddes ImageIcon in Objektarray (TableModel) einfügen. Java Basics - Anfänger-Themen 7
G Objektarray inerhalb des Konstruktors erstellen Java Basics - Anfänger-Themen 2
G Objektarray mit sich selbst rekombinieren Java Basics - Anfänger-Themen 5
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J HashSet mit Comparable sortieren Java Basics - Anfänger-Themen 13
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
O Sortieren mit Insertion Sort Java Basics - Anfänger-Themen 3
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
Jambolo Karten sortieren nach Rang und Farbe Java Basics - Anfänger-Themen 5
rosima26 Java nach letzter Ziffer sortieren Java Basics - Anfänger-Themen 19
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
K verschiedene Eingaben sortieren Java Basics - Anfänger-Themen 6
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
K Java sortieren. Java Basics - Anfänger-Themen 7
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
J Tabelle Sortieren Java Basics - Anfänger-Themen 48
rafi072001 Sortieren einer HashMap nach Values Java Basics - Anfänger-Themen 2
L Sortieren Java Basics - Anfänger-Themen 1
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
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
C Sortieren einer ArrayList Java Basics - Anfänger-Themen 2
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
java3690 eine liste sortieren Java Basics - Anfänger-Themen 12
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
W Personen sortieren mit Comparator Java Basics - Anfänger-Themen 9
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
B HashMap alphabetisch sortieren Java Basics - Anfänger-Themen 2
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
V Collections ArrayList mit Comparator sortieren Java Basics - Anfänger-Themen 16
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
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
B Liste sortieren? Java Basics - Anfänger-Themen 4
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 Arrays sortieren in einer Methode Java Basics - Anfänger-Themen 2
E Methoden 2 Arrays sortieren (MergeSort) Java Basics - Anfänger-Themen 3
B Suchen und sortieren Java Basics - Anfänger-Themen 10
F Zahlen im Feld sortieren + Unterprogramm Java Basics - Anfänger-Themen 4
O Zweidimensional Array sortieren Java Basics - Anfänger-Themen 14
J Liste,Queue,Stack sortieren Java Basics - Anfänger-Themen 2
CptK Variablen Teile eines Arrays zufällig sortieren Java Basics - Anfänger-Themen 7
K Methoden Array[][] sortieren Java Basics - Anfänger-Themen 30
CptK Datentypen Integer ArrayList sortieren Java Basics - Anfänger-Themen 2
E ArrayList sortieren Java Basics - Anfänger-Themen 16
L Methode zum sortieren Java Basics - Anfänger-Themen 1
L Methode zum sortieren Java Basics - Anfänger-Themen 1
B Sortieren mit Iterator Java Basics - Anfänger-Themen 4
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
A Sortieren ausgerechneter Werte aus einer TXT Datei Java Basics - Anfänger-Themen 8
E LMC (Assembler) Sortieren von 3 Zahlen Java Basics - Anfänger-Themen 4
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
A Array sortieren Java Basics - Anfänger-Themen 1
N StringArray alphabetisch sortieren Java Basics - Anfänger-Themen 4
Tommy135 Erste Schritte JavaDoc Sortieren Java Basics - Anfänger-Themen 5
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
F HashMap sortieren <String, Long> Java Basics - Anfänger-Themen 3
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
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
M Arrays sortieren und kleinster Abstand Java Basics - Anfänger-Themen 3
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
N TreeMap alphabetisch sortieren? Java Basics - Anfänger-Themen 3
I <List> sortieren Java Basics - Anfänger-Themen 2
F Interface Nach mehreren Kriterien sortieren Java Basics - Anfänger-Themen 2
R Objekte Vergleichen und Sortieren Java Basics - Anfänger-Themen 3
I Sortieren nach Priorität Java Basics - Anfänger-Themen 3
S List<T<X,Y> sortieren Java Basics - Anfänger-Themen 5
W Array sortieren Java Basics - Anfänger-Themen 3
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
Alex/89 Werte einer .txt Datei sortieren Java Basics - Anfänger-Themen 8
N Bubble Sort sortieren mit Int Werte Java Basics - Anfänger-Themen 8
N Collection sortieren/ filtern Java Basics - Anfänger-Themen 7
C Methoden Einfach verkette Liste - int Werte aufsteigend sortieren Java Basics - Anfänger-Themen 1
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
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 Chars in einem String alphabetisch sortieren Java Basics - Anfänger-Themen 1
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
J Sortieren Java Basics - Anfänger-Themen 21

Ähnliche Java Themen

Neue Themen


Oben