# Wie kann ich den höchsten Wert eines Arrays ermitteln?



## javier974 (6. Jun 2007)

Hallo,


Wie kann ich den höchsten Wert eines Arrays ermitteln?

Könnt ihr mir bitte weiterhelfen?

mfg


----------



## solnze (6. Jun 2007)

was ist es denn fuer ein array?

standardmaessig mit einer for schleife durch das array gehn., den ersten wert speichern und die nachfolgenden nur dann speichern wenn sie "hoeher" sind als der schon gespeicherte.


----------



## javier974 (6. Jun 2007)

Ein normales Double Array


----------



## solnze (6. Jun 2007)

joa, dann ab, for schleife bauen, werte auslesen, vergleichen,speichern und am ende ausgeben.


----------



## ExZtEd (6. Jun 2007)

Falls die Reihenfolge Deiner Elemente im Array egal ist, kannst auch einfach mit Arrays.sort() sortieren und das letzte Element nehmen.


----------



## Jango (6. Jun 2007)

solnze hat gesagt.:
			
		

> joa, dann ab, for schleife bauen, werte auslesen, vergleichen,speichern und am ende ausgeben.



Für sowas wurden _foreach_-Schleifen eingeführt.


----------



## merlin2 (6. Jun 2007)

Jango hat gesagt.:
			
		

> Für sowas wurden foreach-Schleifen eingeführt.


Mit welcher Java-Version?


----------



## L-ectron-X (6. Jun 2007)

Java 1.5. 
Jede normale for-Schleife tut's aber auch.


```
double max = 0; //größte Zahl
for(int i = 0; i < meinArray.length; i++) {
   if(meinArray[i] > max) {
      max = meinArray[i];
   }
}
```

Einfach, kurz und knackig.

Ich muss aber trotzdem noch mal nachhaken: Ist es ein Double[] oder ein double[]?


----------



## raptorrs (7. Jun 2007)

oder Du nimmst einfach diesen Sortierer:

http://www.java-forum.org/de/viewtopic.php?t=50128


----------



## Aetsch (7. Jun 2007)

Ich habs bei mir aktuell so gelöst:


```
public double getMaxVerbrauch(){
    Double[] verbrauch = new Double[tankungen.size()];
    for(int i = 1; i <= tankungen.size(); i++){
      verbrauch[i-1] = getVerbrauch(i);
    }
    Arrays.sort(verbrauch);
    return verbrauch[verbrauch.length-1];
  }
```


----------



## Marco13 (8. Jun 2007)

L-ectron-X hat gesagt.:
			
		

> Java 1.5.
> 
> ```
> double max = 0; //größte Zahl
> ```


 :shock: ich gehe mal davon aus, dass das ein Versehen war.

```
double max = Double.NEGATIVE_INFINITY; //größte Zahl
```
  

Und @Aetsch und raptorrs: Zu sortieren, NUR um das größe Element zu finden, ist ziemlich  :autsch:


----------



## Quickbeam2k1 (8. Jun 2007)

warum wollt ihr sortieren? Das ist von der laufzeit doch viel zu schlecht?
Dabei haben wir n log n. Und wenn wir nur das größte Element suchen haben wir als Laufzeit n. Das ist für große Arrays viel effizienter


----------



## raptorrs (8. Jun 2007)

Na ja, Leute

Ich dachte, ein richtiger Code-Schnipseler käme vielleicht auf die Idee, nur die Methode binarySearch() zu nutzen!!!

;-))


----------



## bygones (8. Jun 2007)

wenn es sich um ein Double handelt

```
Collections.max(Arrays.asList(d));
```


----------



## Roar (8. Jun 2007)

raptorrs hat gesagt.:
			
		

> oder Du nimmst einfach diesen Sortierer:
> 
> http://www.java-forum.org/de/viewtopic.php?t=50128
> 
> Ich dachte, ein richtiger Code-Schnipseler käme vielleicht auf die Idee, nur die Methode binarySearch() zu nutzen!!!



nur dass deine methode binarySearch() in dem anderen thread keine binäre suche ausführt sondern genau das gleiche macht wie der bereits gepostete code nur mit ner while statt for schleife  :roll:


----------



## bygones (8. Jun 2007)

Roar hat gesagt.:
			
		

> raptorrs hat gesagt.:
> 
> 
> 
> ...


oeh... versteh ich vielleicht gerade nicht... aber binarySearch tut eben nicht einfach ueber den kompletten Array iterieren... sondern macht eben schon das schoene hin und her huepfen einer binaeren suche....


----------



## Roar (8. Jun 2007)

deathbyaclown hat gesagt.:
			
		

> oeh... versteh ich vielleicht gerade nicht... aber binarySearch tut eben nicht einfach ueber den kompletten Array iterieren... sondern macht eben schon das schoene hin und her huepfen einer binaeren suche....


raptors binarySearch methode hüpft aber nich hin und her.
das mit dem hin und her hüpfen würde aber auch nur funktionieren wenn die liste sortiert ist.
und wenn die liste sortiert ist, weiß ich wo das größte element steht, da brauch ich auch keine binäre suche mehr dafür, weder eine richtige, noch raptors


----------



## bygones (8. Jun 2007)

ah... raptors binarySearch... nicht javas.

hab verstanden


----------

