Maximalen Wert einer ArrayList ausgeben

  • Themenstarter Themenstarter G4ST
  • Beginndatum Beginndatum
G

G4ST

Gast
Hallo,

habe eine ArrayList, die konzerthallenliste heißt, vorliegen. Wie lese ich nun aus dieser Liste den höchsten Wert heraus? Ziel ist es, die Auslastungen der von einem Hallenmanager betreuten Konzerthallen zu vergleichen und den größten Auslastungswert zurückzugeben.

Danke schonmal für jede Hilfe!


P.S.: Haben das in der Schule mit:

Java:
double auslastung;
		double max=0;
		
		for (int i=0; i < konzerthallenliste.size(); i++) {
			auslastung = konzerthallenliste.get(i).getAuslastung();
			if (auslastung < max) {
				max = auslastung;
			}
		}
		return max;

gemacht, den Quellcode habe ich aber leider nicht wirklich verstanden, da ihn uns der Lehrer einfach nur ausgeteilt hat.

Wäre super, wenn mir hier jemand erklären könnte, wie ich an den maximalen Wert einer ArrayList herankomme, oder vielleicht sogar den Quellcode hier erklären könnte!
Danke im Voraus!
 
Deine Methode bestimmt nicht das Maximum, sonden Minimum. Du müsst überprüfen oder auslastung größer als max ist.
Du gehst davon aus, dass dein Maximum 0 ist. Dann gehst du die ganze Liste durch, wenn das aktuelle Element größer als dein vorheriges Maximum ist, dann wird es zum Maximum.
Welchen Teil genau hast du nicht verstanden?
 
Erstmal vielen Dank, dass ihr mir so schnell geantwortet habt!

@XHelp: Oh, du hast recht, da hat mein Lehrer wohl 'nen Fehler gemacht ;D Danke, ist natürlich völlig richtig, die aktuelle Auslastung wird immer mit dem Maximalwert verglichen und nur wenn sie größer ist, wird sie zum neuen Maximalwert.

@ARadauer: Die Schleife verstehe ich. Es geht bei Null los und klappert alle Stellen der ArrayList ab, bis das Ende erreicht ist. Was ich etwas verwirrend finde, ist folgendes:
Java:
 auslastung = konzerthallenliste.get(i).getAuslastung();

Warum steht hier nochmal ein (i) und 2x get? Es ist klar, dass die ArrayList die get-Methode besitzt, das ganze kommt mir aber doch recht spanisch vor.


Aber es müsste doch eine viel kürzere und einfachere Methode, als diese geben, oder? Klingt nämlich ein wenig umständlich, bin mir sicher, dass man öfters mal das Maximum einer ArrayListe auslesen muss 😛
 
Wovon hast du denn eine Liste? getAuslastung ist nämlich die Methode dieser Klasse. Ist genau das gleiche wie:
Java:
KonzertHalleKlasse tmp = konzerthallenliste.get(i);
auslastung = tmp.getAuslastung();

Was einfaches... kann man denn deine Objekte vergleichen (stichwort comparable)? Woher soll Java denn wissen, dass die nun nach Auslastung und nicht nach Gummibären suchen muss? Du kannst die Liste aus sortieren und dann das 1. Element ausgeben.
 
@ARadauer: Die Schleife verstehe ich. Es geht bei Null los und klappert alle Stellen der ArrayList ab, bis das Ende erreicht ist. Was ich etwas verwirrend finde, ist folgendes:
Java:
 auslastung = konzerthallenliste.get(i).getAuslastung();

Warum steht hier nochmal ein (i) und 2x get? Es ist klar, dass die ArrayList die get-Methode besitzt, das ganze kommt mir aber doch recht spanisch vor.

Das erste get holt die aktuelle Halle aus der Liste, das zweite die Auslastung von der Halle. Kann man auch anders schreiben damit es klarer wird:
Java:
auslastung = konzerthallenliste.get(i).getAuslastung();
// wäre also:
KonzertHalle halleI = konzerthallenliste.get(i);
auslastungFuerHalleI = halleI.getAuslastung();

EDIT:// too late 😉
 
Wovon hast du denn eine Liste? getAuslastung ist nämlich die Methode dieser Klasse. Ist genau das gleiche wie:
Java:
KonzertHalleKlasse tmp = konzerthallenliste.get(i);
auslastung = tmp.getAuslastung();

kann man denn deine Objekte vergleichen [....] Du kannst die Liste aus sortieren und dann das 1. Element ausgeben.

Oder Collections.max / min (Collections (Java Platform SE 6))
 
Wovon hast du denn eine Liste? getAuslastung ist nämlich die Methode dieser Klasse. Ist genau das gleiche wie:
Java:
KonzertHalleKlasse tmp = konzerthallenliste.get(i);
auslastung = tmp.getAuslastung();

Was einfaches... kann man denn deine Objekte vergleichen (stichwort comparable)? Woher soll Java denn wissen, dass die nun nach Auslastung und nicht nach Gummibären suchen muss? Du kannst die Liste aus sortieren und dann das 1. Element ausgeben.

comparable hatten wir leider in der Schule noch nicht, könntest du mir erklären, wie das anhand meines Beispieles funktioniert?

@eRaaaa: Verstehe leider nicht viel in dem Link, habe mich noch nie mit der Java Hilfe auseinandergesetzt^^ Könntest du mir vielleicht zeigen, wie das geht?
 

Zurück
Oben