[Java] Array & Schleife

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von osiris, 15. November 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 15. November 2010
    Array & Schleife

    Hi,

    hab eine - vermutlich - kurze Frage:

    Ich hab ein Array mit Länge 1 und möchte dem jetzt ein neues Element HINZUFÜGEN, also hinten dran.
    Das Element wird vom User eingegeben.

    Code:
    int zahlen[];
    System.out.println("Element:");
    n = SavitchIn.readInt();
    
    Habe das Ganze in einer while Schleife stehen, denn wenn die Eingabe 0 ist, sollte das Programm weiter gehen.

    n soll danach an die jeweilig erste freie Stelle kopiert werden. Habe da leider gerade eine Gedanken Blockade, selbst google und ein Java Buch helfen mir gerade nicht. Hoffe, hier kann mir jemand schnelle Hilfe geben, ich ärger mich hier noch grün und blau.

    Vielen Dank
     
  2. 15. November 2010
    AW: Array & Schleife

    muss man in java nicht einem normalen array eine feste größe geben?

    wenn also eingabe kommt != 0 legst du ein neues array an mit int zahlen2 = int[zahlen.length+1] dann speicherst du die werte aus zahlen in zahlen2 und fügst als letztes element die eingelesene zahl ein.

    flexiblere möglichkeit wäre eine Liste (Stichwort: ArrayList) hier kannst du in die liste per methode add einen wert einfügen und mit remove entfernen und auch pet get() auf einen index zugreifen und per size() die größe bekommen.

    lässt sich also genauso handhaben, wie ein array nur mit flexibler größe.

    Beispiel:
    How to use ArrayList in Java
     
  3. 15. November 2010
    AW: Array & Schleife

    Ich wusste, dass ich vor lauter Bäumen den Wald nicht mehr sehe.

    Dankeschön für die Hilfe!
     
  4. 15. November 2010
    AW: Array & Schleife

    Hab da noch ein kleines Problem.

    Habe mittlerweile die Elemente verglichen, sind alles Zahlen von daher ist das kein Problem.

    Vorliegend habe ich nun also jedes Mal eine ArrayListe "zahlen". Diese soll so verglichen werden, als dass die Zahlen nacheinander durchgegangen werden.
    Die Länge der längsten, streng monoton wachsende Zahlenkette soll dabei am Ende ausgegeben werden inkl. dem Hinweis, an welcher Startposition diese beginnt.

    Also beispielsweise:
    Zahlen:
    -8, 4, 6, 5, 2, 1, 3, -8, 16, 24
    Ausgabe: Länge: 3, Startposition: 1

    Wie realisiere ich das denn? Ich frag mal hier parallel zu meiner Suche, dankeschön.
     
  5. 15. November 2010
    AW: Array & Schleife

    bewertung war missclick

    hier ein kleiner algorithmus für dein problem:

    Code:
    int maxPos = 0;
    int startPos = 0;
    int max = 0;
    int count = 1;
    
    for (int i = 1; i < zahlen.size(); i++) {
     if (zahlen.get(i - 1) < zahlen.get(i)) {
     count++;
    
     if (i == zahlen.size() - 1) {
     if (count > max) {
     max = count;
     maxPos = startPos;
     }
     }
     }
     if ((zahlen.get(i - 1) >= zahlen.get(i)) || ((i == zahlen.size() - 1))) {
     if (count > max) {
     max = count;
     maxPos = startPos;
     }
    
     startPos = i;
     count = 1;
     }
    }
    
    System.out.println("Länge: " + max + " Startposition: " + (maxPos + 1));
    
    
    Das Programm überprüft immer die aktuelle Stelle der Arraylist (i) mit der vorherigen Stelle (i-1). Wenn i > i-1 wird die Zählvariable count erhöht.
    startPos speichert immer die Anfangsposition der aktuellen monoton wachsenden Reihe.
    Der Rest sollte klar sein.

    Hoffe das hilft dir weiter.
     
  6. 15. November 2010
    AW: Array & Schleife

    Du kannst dir auch mal das "flexible" Array-Objekt Arraylist anschauen. Das macht nichts anderes als Darksun oben gecodet hat. Du hast ein Array mit einer festen Länge und wenn du zuviele Einträge hast, wird das Array automatisch verlängert.
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.