Paar kleine Grundsatzfragen zu Java

babuschka

Top Contributor
Hallo,

bin recht neu in Java und steh vor ein paar Problemen.

1. Array "durchmischen":

Ich habe hier ein Array mit verschiedenen Objekten drin. Die sind jetzt erstmal so beispielsweise sortiert:

1
2
3
4
5...

Aber gibts ne Möglichkeit diese per Zufall durchmischen zu lassen, sodass beispielsweise sowas bei rauskommt?

3
4
1
5
2
...

2. Array nach Variable des Objekts sortieren?

Dann habe ich hier beispielsweise ein Array bestehend aus 4 Objekten:

array[0] = Objekt1 (Variable "punkte" = 10)
array[1] = Objekt1 (Variable "punkte" = 4)
array[2] = Objekt1 (Variable "punkte" = 6)
array[3] = Objekt1 (Variable "punkte" = 8)

Gibts jetzt irgendwie ne Möglichkeit dieses Array nach den Objekte-Variablen neu zu sortieren? Also am Ende soll sowas bei rauskommen:

array[0] = Objekt1 (Variable "punkte" = 10)
array[1] = Objekt1 (Variable "punkte" = 8)
array[2] = Objekt1 (Variable "punkte" = 6)
array[3] = Objekt1 (Variable "punkte" = 4)


Hoffe Ihr könnt mir da eventuell bisschen helfen, wie bei sowas die Grundideen sind. :(

Dankeschön
 

eRaaaa

Top Contributor
1.)Arrays von Haus aus können das nicht nein..du kannst dir aber ja leicht ein eigenes Zufallsmischen schreiben :D (aber dann nicht so: Microsofts Browserwahl ist nicht zufällig genug - Golem.de *g* )
Oder du wandelst es mit Arrays.asList zu einer Liste und benutzt dann Collections.shuffle!

2.) Ja, entweder müssen deine Objekte Comparable implementieren, oder du schreibst einen Comparator, dann kannst du mit Arrays.sort sortieren!
 

babuschka

Top Contributor
Man kann (bei einem Array der Größe n) n mal zwei Objekte an zufällig gewählten Arraypositionen vertauschen.

Achso ja klar....ich lass das einfach 100mal durchlaufen und tausche 100 Werte aus. Schon ist es gemischt...danke

2.) Ja, entweder müssen deine Objekte Comparable implementieren, oder du schreibst einen Comparator, dann kannst du mit Arrays.sort sortieren!

Kannst du da vielleicht noch bisschen mehr zu sagen, bzw. wo kann ich dazu noch was rausfinden? Geht jetzt hier genauer drum, dass ich in einer Gruppe zum Beispiel 4 Mannschaften habe. Jede Mannschaft hat eine bestimmte Anzahl von Punkten, dann von Toren....

Und jetzt möchte ich eben das Array der 4 Mannschaften erst nach den Punkten, dann nach den Toren...etc sortieren. Die Punkte und Tore, etc. sind bisher alles Variablen der Mannschaften.
 

eRaaaa

Top Contributor
Jepp, neue Klasse erstellen, das Interface Comparator implementieren..genaue Infos und Beispiele findest du unteranderem hier:
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 12.4 Vergleichen von Objekten

Java:
class Team {
	// vereinfacht public
	public int punkte;
	public int tore;

	public Team(int p, int t) {
		this.punkte = p;
		this.tore = t;
	}

	public String toString() {
		return "Punkte: " + this.punkte + " Tore: " + this.tore;
	}

	public static void main(String[] args) {
		Team[] teams = new Team[4];
		teams[0] = new Team(10, 20);
		teams[1] = new Team(4, 8);
		teams[2] = new Team(4, 12);
		teams[3] = new Team(18, 10);
		Arrays.sort(teams, new TeamComparator());
		for (Team team : teams) {
			System.out.println(team);
		}
	}
}

class TeamComparator implements Comparator<Team> {
	public int compare(Team o1, Team o2) {
		// hier also beide teams vergleichen
		// zuerst punkte...wenn diese gleich sind, tore vergleichen
		int p = o2.punkte - o1.punkte;
		if (p != 0) {
			// punkte nicht gleich --> also tore nicht pruefen
			return p;
		} else {
			return o2.tore - o1.tore;
		}
	}
}
 
Zuletzt bearbeitet:

myjday

Aktives Mitglied
Schönen Guten Abend,

ich habe gestern ein Arrays bestehend aus Objekten gemischt.
Ich geb Dir einfach den Code. Vielleicht hilfts ja.
Da das Array ja eigentlich nur die Referenzen auf die tatsächlichen reell im speicher existerenden
Objekte verwaltet reicht es ja völlig aus die Referenzen zu tauschen.

Java:
private void mische_Karten(){

		for(int i =0; i < karte.length; ++i){

			Karte temp;
			int n = new Random().nextInt(karte.length);

			// tausche

			temp = karte[i];

			karte[i] = karte[n];
			karte[n] = temp;
		}
	}

Damit Random() funktioniert musst du noch java.util.Random einbinden.

Java:
import java.util.Random;

Fröhliches Mischen!

Gruß,
myjday
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S ein paar kleine Fragen Java Basics - Anfänger-Themen 4
B Java ist / wird kostenpflichtig. Ein paar Fragen Java Basics - Anfänger-Themen 1
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
P Erste Schritte Bitte ein paar Erklärungen zu meinem Code Java Basics - Anfänger-Themen 6
Azazel Ein paar Fragen zu Methodenaufrufen(java.awt) Java Basics - Anfänger-Themen 2
S Integer/Value-Paar in Prio-Queue ohne Comparator Java Basics - Anfänger-Themen 5
T Ein paar Fragen zu OOP und Java. Java Basics - Anfänger-Themen 16
D Bild für ein paar Sekunden einblenden und wieder ausblenden Java Basics - Anfänger-Themen 1
M Paar Probleme mit 3 Klassen Java Basics - Anfänger-Themen 23
C Array - Ein paar Verständnisfragen Java Basics - Anfänger-Themen 9
K BufferedWriter schreibt die letzten paar Zeilen nicht Java Basics - Anfänger-Themen 5
K Java Anfänger und paar Fragen=D Java Basics - Anfänger-Themen 7
J Paar Fragen zu Exceptions Java Basics - Anfänger-Themen 16
I Ein paar Kleinigkeiten Java Basics - Anfänger-Themen 11
C Umsteiger hat noch ein paar Fragen Java Basics - Anfänger-Themen 11
StrikeTom Ein paar(2) Fragen zu throws und try + catch Java Basics - Anfänger-Themen 6
Luk10 Datentypen Werte-Paar Java Basics - Anfänger-Themen 4
Nicer ! Problem nach paar Bierchen erkannt aber nicht gebannt ! Java Basics - Anfänger-Themen 7
I Ein paar Syntaxfragen... Java Basics - Anfänger-Themen 3
T ein paar fragen Java Basics - Anfänger-Themen 10
D Arrays und paar Möglichkeiten mit denen Java Basics - Anfänger-Themen 3
Antoras Ein paar theoretische Fragen Java Basics - Anfänger-Themen 19
G Brauche ein paar erklärungen zu Quelltext Java Basics - Anfänger-Themen 5
A Primzahlen: ein paar offene Fragen Java Basics - Anfänger-Themen 2
A paar bilder auf einmal Java Basics - Anfänger-Themen 3
A Paar Fragen zu Applet u.a. Java Basics - Anfänger-Themen 2
R Strings und dazu ein paar methoden Java Basics - Anfänger-Themen 12
A taschenrechner mit radioButtons aber ein paar problemen Java Basics - Anfänger-Themen 5
0x7F800000 Ein paar noob-fragen zu java ME Java Basics - Anfänger-Themen 5
G Threads brauche da gilfe für paar fragen Java Basics - Anfänger-Themen 5
V Könnt ihr mal über Paar antworten schauen(Hausaufgaben) Java Basics - Anfänger-Themen 7
G Hoffe jemand kann mir ein paar Tips geben:binärer Suchbaum Java Basics - Anfänger-Themen 3
R Noch ein paar Anfängerfragen. Java Basics - Anfänger-Themen 4
N ein paar L&F Fragen Java Basics - Anfänger-Themen 7
S Ein paar Anfängerfragen Java Basics - Anfänger-Themen 17
S ein paar Fragen - mit KSKB Java Basics - Anfänger-Themen 16
M Zeilenausgabe auf ein paar Zeichen begrenzen Java Basics - Anfänger-Themen 2
A Habt ihr ein paar ideen für Programme? Java Basics - Anfänger-Themen 8
G Doppelte (Paar) Werte in einem Vektor finden Java Basics - Anfänger-Themen 6
B Bräuchte ein paar Sachen für mein Clientprogramm! Java Basics - Anfänger-Themen 6
megachucky Suche ein paar gute Tutorials so wie dieses hier. Java Basics - Anfänger-Themen 4
P Bitte um ein paar Tipps! (Threads, Warten auf Ereignisse,.) Java Basics - Anfänger-Themen 2
G Ein paar Definitionsfragen Java Basics - Anfänger-Themen 4
B Paar richtige Anfängerfragen Java Basics - Anfänger-Themen 7
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
J Kleine Frage zu OOP Java Basics - Anfänger-Themen 371
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
M Welches Framework für kleine WebApp nutzen? Java Basics - Anfänger-Themen 6
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
CptK Interface Kleine Kreise in großem Kreis anordnen Java Basics - Anfänger-Themen 3
CT9288 Kleine Simulation programmieren, denkanstöße erbeten Java Basics - Anfänger-Themen 19
S Kleine Frage zu Threads Java Basics - Anfänger-Themen 3
T Klassen Kleine Übung zum Thema Klassen Java Basics - Anfänger-Themen 3
O Kleine Frage zu Iterator und Iterable Java Basics - Anfänger-Themen 6
O Kleine Frage zu cast Java Basics - Anfänger-Themen 3
U DOM Parser, kleine Frage Java Basics - Anfänger-Themen 29
N BierSpiel von "Kopf bis Fuss" eigener Code...kleine Problemstellung. Java Basics - Anfänger-Themen 11
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
TheSorm Kleine Speicher Klasse Java Basics - Anfänger-Themen 24
F Speicherlast mehrere GB durch kleine png files? Java Basics - Anfänger-Themen 1
T Kleine Anfängerfrage :) Java Basics - Anfänger-Themen 4
T Kleine Klausurfragen Java Basics - Anfänger-Themen 17
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
Q Vererbung Kleine Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 5
DStrohma Best Practice Hibernate für kleine Anwendung nutzen? Java Basics - Anfänger-Themen 4
O Konsole - Kleine Frage Java Basics - Anfänger-Themen 22
N kleine get-Methode anhand einer Aufgabenstellung Java Basics - Anfänger-Themen 13
D Kleine Rechenregel... ++a Java Basics - Anfänger-Themen 4
ScottGambler Kleine Frage Java Basics - Anfänger-Themen 13
M Erste Schritte 2 Kleine Programme Java Basics - Anfänger-Themen 27
T Kleine Frage Java Basics - Anfänger-Themen 2
B Kleine Erklärung zu einer Codezeile benötigt Java Basics - Anfänger-Themen 5
A Java Flächeninhaltsberechnung kleine Frage Java Basics - Anfänger-Themen 8
H Datei in kleine Stücke teilen und wieder erkennen Java Basics - Anfänger-Themen 10
P eigene kleine Datenverwaltung Java Basics - Anfänger-Themen 5
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
S Erste Schritte Zwei kleine Fragen zu [], int und Konstruktor Java Basics - Anfänger-Themen 3
S Erste Schritte Kleine Problem mit Ausgabe in eine Datei Java Basics - Anfänger-Themen 11
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
R Sehr kleine doubles nicht in Exponentialdarstellung ausgeben Java Basics - Anfänger-Themen 3
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
O kleine SwingFrame Java Basics - Anfänger-Themen 3
T Kleine Frage zu Collections Java Basics - Anfänger-Themen 3
J BlueJ! 2 kleine Fragen zum Spiel. Java Basics - Anfänger-Themen 3
J Kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
H Warum funktioniert diese kleine Methode nicht? Java Basics - Anfänger-Themen 8
E Kleine Hilfe für einen Einsteiger Java Basics - Anfänger-Themen 18
Luk10 Dateipfad beim Laden einer Datei + Neue kleine Frage! Java Basics - Anfänger-Themen 11
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
M kleine Verständisfrage zur Klassenhierarchie, speziel JMenuItem Java Basics - Anfänger-Themen 8
J Kleine Frage zu Methoden & OOP Java Basics - Anfänger-Themen 4
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
S 2 kleine Methoden negieren und print Java Basics - Anfänger-Themen 8
J if und kleine double Werte Java Basics - Anfänger-Themen 7
H kleine zwischenfrage string Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben