Array sortieren

Hallo,

ich habe einmal zu Testzwecken ein Programm geschrieben, dass die Punktzahl von Spielern sortieren soll bzw. die Spieler danach sortieren soll.

Java:
class Haupt{
	public static void main(String[] args){
		System.out.print("Bitte die Anzahl an Spieler eingeben: ");
		int anzahl_der_spieler = In.readInt();
		Spieler[] a = new Spieler[anzahl_der_spieler];
		for(int i = 0; i<anzahl_der_spieler; i++){
			System.out.print("Bitte die Punktezahl und die Anzahl der Siege eingeben: ");
			a[i] = new Spieler(In.readInt(), In.readInt());
		}
		Arrays.sort(a, new Vergleiche());
	}
}

Java:
class Spieler{
	int punkte;
	int siege;
	Spieler(int punkte, int siege){
		this.punkte = punkte;
		this.siege = siege;
	}
	int punkte(){
		return punkte;
	}
}

Java:
class Vergleich implements Comparator<Spieler>{
	public int compare(Spieler a, Spieler b){
		return a.punkte() - b.punkte();
	}
}

Die Klasse Spieler lässt sich laden.
Bei der Klasse Vergleich erscheint allerdings die Meldung:
Code:
Vergleich.java:1: cannot find symbol
symbol: class Comparator
class Vergleich implements Comparator<Spieler>{

Was mache ich denn falsch?
 
G

Gast2

Gast
Dann fehlt dir in Vergleich noch in
Code:
import java.util.Comparator;
.
 
G

Gast2

Gast
Die Frage ist ehrlich gesagt nicht viel besser ;)
Deine Klasse heißt Vergleich, du versuchst Vergleiche zu instantiieren.
 
H

hüteüberhüte

Gast
Alternativ könntest du in Spieler auch das Interface Comparable implementieren. Wo
Code:
In.readInt();
herkommt, ist mir noch nicht ganz klar...
 
Noch eine Frage:
Gibt es eine Möglichkeit, in meiner Vergleichs-Klasse zusätzlich nach einem anderen Kriterium zu sortieren, oder muss ich dafür eine neue Klasse erstellen?
 
G

Gast2

Gast
Du kannst sortieren wie du willst. Entscheidend ist dass du 0, negativ oder positiv zurückgibtst.
 
H

hüteüberhüte

Gast
Was mir gerade auffällt ist, dass Zeile 4 in Vergleich nicht immer das gewünschte Ergebnis liefern muss, bedingt durch einen möglichen integer overflow

Um nach unterschiedlichen Kriterien zu sortieren, erstellst du am besten einen zusätzlichen Comparator

Oder du drehst das sortierte Array anschließend um, wenn es anstatt aufsteigend absteigend sortiert sein soll...

(Ein flag innerhalb von Vergleich ist eher unschön...)
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Ich schätze er meint das eher so:
1. Sortieren nach Punkten.
2. Wenn Punkte gleich, dann sortier nach Siegen.
Für sowas legt man dann keinen zweiten Comparator an.
 
H

hüteüberhüte

Gast
Ich bin Student. Wenn ich richtig informiert bin, ist das eine Vereinfachung. Wir müssen in dem Ordner des Programmes dazu die in und Out Klasse haben.

Bin ich auch. Evtl. erscheint dir das kürzer oder besser handhabbar:

Java:
        Arrays.sort(array, new Comparator<Elem>() {

            public int compare(Elem o1, Elem o2) {
                return o1 < o2 ? -1 : o1 > o2 ? 1 : 0;
                // aufsteigend...
            }
        });

Das wäre eine s.g. anonyme innere Klasse - weil sie keinen Namen/Bezeichner hat und innerhalb einer Klasse/Methode steht...
 
Nein, ich möchte das Array noch einmal komplett anders sortieren. Dafür habe ich jetzt eine neue Klasse angelegt. Mich hat nur interessiert, ob dies ein schlechter Programmierstil wäre.
 
G

Gast2

Gast
Ja wenn du ne komplett andere Sortierung haben willst dann erstellst du am besten ne neue Klasse.
 
H

hüteüberhüte

Gast
Ich schätze er meint das eher so:
1. Sortieren nach Punkten.
2. Wenn Punkte gleich, dann sortier nach Siegen.
Für sowas legt man dann keinen zweiten Comparator an.

Achso! Dann muss einfach nur die implementierte Vergleichsmethode in Vergleich angepasst werden... (siehe unten...)

(Edit 2)
 
Zuletzt bearbeitet von einem Moderator:
H

hüteüberhüte

Gast
Das war Quatsch... ungefähr so sollte das dann sein:

Java:
if (a.punkte() < b.punkte()) {
    return -1;
}
if (a.punkte() > b.punkte()) {
    return 1;
}
if (a.siege() < b.siege()) {
    return -1;
}
if (a.siege() > b.siege()) {
    return 1;
}
return 0;

Oder alles in der "verkürzenden" "? :"-Schreibweise...
 
G

Gast2

Gast
Java:
a.punkte() - b.punkte();
Wenn a.punkte() eine sehr große Zahl, und b.punkte() eine sehr große negative Zahl ist kanns sein dass du den Wertebereich von nem Integer verlässt. Dann wird die eigentlich positive Zahl zu einer negativen.
 
Ä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
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
R 2D Array sortieren Java Basics - Anfänger-Themen 11
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
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
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

Ähnliche Java Themen

Neue Themen


Oben