# Maximalen Wert einer ArrayList ausgeben



## G4ST (22. Nov 2010)

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:


```
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!


----------



## XHelp (22. Nov 2010)

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?


----------



## ARadauer (22. Nov 2010)

wo müssn wir den ansetzen??? verstehst du das?
 for (int i=0; i < konzerthallenliste.size(); i++) {
konzerthallenliste.size() ist die länge der liste...
das drum herum ist eine for schleife
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 2.7 Schleifen

wenn der aktuell wert größer max ist, merkt man sich den als max, amit hast du zum schluss den größen wert in der variable max


----------



## G4ST (22. Nov 2010)

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:

```
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


----------



## XHelp (22. Nov 2010)

Wovon hast du denn eine Liste? getAuslastung ist nämlich die Methode dieser Klasse. Ist genau das gleiche wie:

```
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.


----------



## Gast2 (22. Nov 2010)

G4ST hat gesagt.:


> @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:
> 
> ```
> auslastung = konzerthallenliste.get(i).getAuslastung();
> ...



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:

```
auslastung = konzerthallenliste.get(i).getAuslastung();
// wäre also:
KonzertHalle halleI = konzerthallenliste.get(i);
auslastungFuerHalleI = halleI.getAuslastung();
```

EDIT:// too late


----------



## eRaaaa (22. Nov 2010)

XHelp hat gesagt.:


> Wovon hast du denn eine Liste? getAuslastung ist nämlich die Methode dieser Klasse. Ist genau das gleiche wie:
> 
> ```
> KonzertHalleKlasse tmp = konzerthallenliste.get(i);
> ...



Oder Collections.max / min (Collections (Java Platform SE 6))


----------



## G4ST (22. Nov 2010)

XHelp hat gesagt.:


> Wovon hast du denn eine Liste? getAuslastung ist nämlich die Methode dieser Klasse. Ist genau das gleiche wie:
> 
> ```
> KonzertHalleKlasse tmp = konzerthallenliste.get(i);
> ...



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?


----------



## XHelp (22. Nov 2010)

Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 12.4 Vergleichen von Objekten

Setz dich lieber mit Javadocs auseinander, ohne geht es nicht.


----------



## G4ST (22. Nov 2010)

XHelp hat gesagt.:


> Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 12.4 Vergleichen von Objekten
> 
> Setz dich lieber mit Javadocs auseinander, ohne geht es nicht.



Werde ich auf jeden Fall machen, nur leider schreibe ich morgen schon 'ne Klausur in Wirtschaftsinformatik, kann gut sein, dass wir dann den Maximalwert einer ArrayList ausgeben müssen...


----------



## XHelp (22. Nov 2010)

Dann reicht der Algo von oben für morgen


----------



## G4ST (22. Nov 2010)

XHelp hat gesagt.:


> Dann reicht der Algo von oben für morgen



Den ich anfangs angegeben habe? Alles klar, dann hilft nur wohl auswendig lernen für morgen und dann die Bezeichnungen austauschen^^

Danke nochmal an alle von euch für die schnelle Hilfe!


----------

