Integer Array mit Laufvariablen

Status
Nicht offen für weitere Antworten.

pavelle

Mitglied
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
 
Zuletzt bearbeitet:

icarus2

Top Contributor
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

Aktives Mitglied
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
Java:
for(int i=0; i<liste.length(); i++){
	System.out.println(liste[i]);
}
 

pavelle

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

Danke nochmals!
 

pavelle

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

Nun geht es mir noch um etwas Verständnis:

Java:
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!
 
S

SlaterB

Gast
> 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
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben