# Integer Array mit Laufvariablen



## pavelle (1. Jun 2009)

Hallo zusammen,
Bin ein blutiger Anfänger in Sache Java, bzw. generell was Programmiersprachen angeht.
Nun gut als Maschinebau Student ist das noch zu verkraften.

In meiner Vorlesung Informatiosntechnik, wurde uns folgene Aufgabe gestellt:

*Entwerfen Sie einen Algorithmus, der der die größte Zahl aus einer Liste L auffindet.
Die Elemente der Liste sind wie folgt belegt: 7 - 14 - 1- 33 - 22 - 14 - 6 - 99 - 17 -12*

Soweit so gut, nun habe ich mir überlegt das Problem in Java umzusetzen, wobei es noch an einigen Stellen hapert, und zwar mit der Umsetzung der Elemnte der Liste L in ein (integer) Array.
Mein Vorgehen:

int[] Liste= {7,14,1,33,22,14,6,99,17,12};

Nun ist mir jedoch bei der Bildcshirmausgabe von Liste aufgefallen, dass es nicht die Zahlen wiedergibt sondern ein wirrwar an Zeichen. (In diesem Fall: [I@19821f)

Wie kann ich es realisieren, dass ich über die system.out.print Ausgabe auf die nummerischen Werte in der Liste komme?

-----------------------------

Das nächste Problem wäre, wie ich in eine Laufvariable erstelle die jeweils zum nächsten Wert des Arrays Liste springt.


Ich hoffe ihr habt mich irgendwie verstanden und danke schonmal für jede Hilfe, welche auch für Anfänger verständlich ist 


Vielen Dank,
Daniel


----------



## icarus2 (1. Jun 2009)

Vielleicht nicht die eleganteste Lösung, aber sie funktioniert:

[Java]
public class ArrayWerteAusgeben {


	public static void main(String[] args) {

		int groessteZahl = 0;

		int[] liste = {7,14,1,33,22,14,6,9,17,12};

		for(int i=0; i < liste.length; i++){
			if(liste_ > groessteZahl){
				groessteZahl = liste;
			}
		}

		System.out.println(groessteZahl);
	}
}
[/Java]_


----------



## SvenK (1. Jun 2009)

Ich nehme an, du hast versucht System.out.println(Liste); auszuführen. Dabei gibt er dir aber nicht alle Elemente in List zurück, sondern nur die "interne Nummer" (Hashcode) des Objektes (Arrays) zurück.

Möchtest du die Elemente ausgeben, geht das mit

```
for(int i=0; i<liste.length(); i++){
	System.out.println(liste[i]);
}
```


----------



## pavelle (1. Jun 2009)

wow, vielen dank für die schnellen Antworten! Ich werde jetzt erstmal euren Lösungen nachgehen... 

Danke nochmals!


----------



## pavelle (2. Jun 2009)

so ich bins nochmal, 
das hat sich hier alles noch zu einer Nachtschicht entwickelt 

Nun geht es mir noch um etwas Verständnis: 


```
groessteZahl = 2;
int[] liste= {7,14,1,33,22,14,6,99,17,12};


for(int i=0; i < liste.length; i++)
    {
        if(liste[i] > groessteZahl)
       {
         groessteZahl = liste[i];
       }
    }

        System.out.println(groessteZahl);
```

Gehen wir mal die Schleife, schriftlich durch:



i=0  - 7     --> true

i=1  - 14    --> true

i=2  - 1     --> false

i=3  - 33    --> true

i=4  - 22    --> true

i=5  - 14    --> true

i=6  - 6      --> true

i=7  - 99    --> true

i=8  - 17    --> true

i=9  - 12    --> true


Was passiert den nun mit den ganzen true Werten in der Schleife bzw If Bedingung? Werden diese nun auf den größten Wert überprüft und dann über den Ausgabestream angezeigt? Ich denke nicht, da es ja keine weiteren Methoden zur Verfügung stehen.

Vielen Dank!


----------



## SlaterB (2. Jun 2009)

> Gehen wir mal die Schleife, schriftlich durch:

deine Auflistung lässt vermuten, dass du davon ausgehst, dass groessteZahl die ganze Zeit 2 bleibt,
dem ist aber nicht so, im if wird doch groessteZahl neu gesetzt,
also
> i=0 - 7 --> true // -> groessteZahl = 7
> i=1 - 14 --> true // -> groessteZahl = 14
> i=2 - 1 --> false
> i=3 - 33 --> true // -> groessteZahl = 33
> i=4 - 22 --> true // nein, false, denn 22 <= 33

> Was passiert den nun mit den ganzen true Werten in der Schleife bzw If Bedingung?
Ziel ist allein, die Variable groessteZahl korrekt zu füllen


----------



## pavelle (3. Jun 2009)

Hi SlaterB du hast vollkommen recht, so weit habe ich mal wieder nicht gedacht.... :toll:


----------

