Iterieren durch eine ArrayList. Integer Array wird übergeben

L

LucaToni

Aktives Mitglied
Versuche seit einer Woche folgendes Problem zu lösen.

Was stimmt hier nicht?
Bekomme einfach nicht das Ergebnis der übergebenen Daten zurück.
Ich glaube das Problem liegt beim Integer... habe auch nicht ganz verstanden warum man hier Integer benutzt und nicht String. Man könnte ja mit String auch alle anderen Zeichen außer Zahlen übergeben. Ich habe keinen expliziten Konstruktor erstellt, da der Standard-Konstruktor ausreichen müsste.


Java:
public class Loop

{

    private ArrayList<Integer> data;

    private int sum=0;

    private int count=0;



    public Loop(Integer[]data)

    {



    }

    public int sumUp(int count)

    {

    

    while(count<data.size())

    {

      

        sum=sum+data.get(count);

        count++;

    }

   System.out.println("The sum of your loop is:"+sum);
   }
 
Zuletzt bearbeitet:
MoxxiManagarm

MoxxiManagarm

Top Contributor
Da stimmt noch so einiges nicht.

1. Der Konstruktor heißt nicht wie die Klasse. Ist die Klasse loop oder Loop? ;-)
2. Du musst im Konstruktor die ArrayList schon auch mit den Daten befüllen. Aktuell ist der Konstruktor leer
3. Du hast in sumUp count sowohl als Parameter als auch als Klassen-Variable. Du greift dort immer auf den Parameter zu. Was soll count eigentlich sein? Ich denke count und sum sollten keine Klassenvariablen sein. Du solltest sie am Anfang der Methode deklarieren.
4. Für einen Anwendungsfall wie sumUp wüde typischer Weise eine for-Schleife zum Einsatz kommen.
5. Bitte Poste Java Code immer in Code Tags [code=java]dein code[/code], das erhöht die Lesbarkeit und damit die Chance, dass dir jemand hilft.
6. In der while-Schleifen-Bedingung greifst du auf daten zu. Dein Array heißt aber data.
 
temi

temi

Top Contributor
Bitte die Code-Tags verwenden: Die drei Punkte rechts vom Smiley -> Code -> Java
Java:
public class Loop {
    private ArrayList<Integer> data; // der Instanzvariablen wird nie etwas zugewiesen
    private int sum=0;
    private int count=0;

    public loop(Integer[] data) { // der Parameter "data" wird nicht verwendet

    }

    public int sumUp(int count) {

        while(count<daten.size()) {
            sum=sum+data.get(count);
            count++;
        }

        System.out.println("The sum of your loop is:"+sum);
    }
}
 
L

LucaToni

Aktives Mitglied
Da stimmt noch so einiges nicht.

1. Der Konstruktor heißt nicht wie die Klasse. Ist die Klasse loop oder Loop? ;-)
2. Du musst im Konstruktor die ArrayList schon auch mit den Daten befüllen. Aktuell ist der Konstruktor leer
3. Du hast in sumUp count sowohl als Parameter als auch als Klassen-Variable. Du greift dort immer auf den Parameter zu. Was soll count eigentlich sein?
4. Für einen Anwendungsfall wie sumUp wüde typischer Weise eine for-Schleife zum Einsatz kommen.
5. Bitte Poste Java Code immer in Code Tags [code=java]dein code[/code], das erhöht die Lesbarkeit und damit die Chance, dass dir jemand hilft.

Zu 1. ou ja Case-Sensitives Java stimmt. Danke für den Hinweis :D
Zu 2. Wie kann ich denn eine ArrayList mit einem Array befüllen?
Zu 3. Count ist einfach die Stelle im Array {10,20,30} 10 an 1.stelle 20 an 2. stelle 30 an 3.stelle (SumUp sollte also bei einem count=2 alle Einträge bis zur 2. Stelle addieren).
zu 4. Ja mit for ist es einfacher aber wir sollen das Iterieren mit While-Schleifen und dem Iterator aus der Java Bibliothek üben.
Zu 5. Verzeihe mir bin neu. Ich achte in Zukunft drauf.
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Zu 2. Wie kann ich denn eine ArrayList mit einem Array befüllen?

Java:
for (Integer num : data) this.data.add(num);

Zu 3. Count ist einfach die Stelle im Array {10,20,30} 10 an 1.stelle 20 an 2. stelle 30 an 3.stelle (SumUp sollte also bei einem count=2 alle Einträge bis zur 2. Stelle addieren).

count ist aber ein fester Wert und sollte nicht verwendet werden, du brauchst noch eine Art Index

zu 4. Ja mit for ist es einfacher aber wir sollen das Iterieren mit While-Schleifen und dem Iterator aus der Java Bibliothek üben.

Ich sehe keinen Iterator!! Den musst du dann schon auch mit einbringen ;-)
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Hier mal ein kurzes Beispiel, wie du count mit einem ListIterator verknüpfen könntest, für Summenbildung ist es ja egal in welcher Richtung die Liste durchlaufen wird.

Java:
int count = 3;
List<Integer> nums = Arrays.asList(2, 4, 6, 8, 10);
ListIterator<Integer> iter = nums.listIterator(count);

while (iter.hasPrevious()) {
    System.out.println(iter.previous());
}

Ausgabe:
Code:
6
4
2
 
L

LucaToni

Aktives Mitglied
Das eintragen der übergebenen Array-Werte in die ArrayList klappt soweit, ABER irgendwie klappt die while-Schleife zum Summieren der Werte nicht und das zurückgeben der Summe nicht. Bekomme immer nur den Wert an der Stelle(index) angezeigt statt der Summe aller Elemente biz zur Stelle(index).
Wo liegt mein Denkfehler? Was habe ich wieder nicht beachtet?

Code:
public class Loop {
    private ArrayList<Integer>liste;   
    private int sum;
    private int index;
    
    public Loop(Integer[]liste1)
    {
        liste = new ArrayList<Integer>();
        for(int index:liste1)
        {
        liste.add(index);
        }
    }
        
        public int sumUp(int index)
     {
        if(index>liste.size())
        {
        System.out.println("Index außerhalb der Liste");
        return 0;
       }
      
       while(index<liste.size())
        {
        sum+=liste.get(index);
        index++;
        
        }
        
        return sum;
        
    }
    


}
 
L

LucaToni

Aktives Mitglied
Ja. Die Implementierung widerspricht dem, daher bin ich etwas verwirrt, was sumUp nun machen soll: bis zum oder ab index addieren?
SumUp : summiert die Einträge des übergebenen Arrays, bis zum übergebenen Index.

Beispiel:
Integer[] array= {1,2,3};
sumUp(2) sollte 3 ergeben(1+2) und index<liste.size().
 
L

LucaToni

Aktives Mitglied
Und immernoch index+sum als Klassenvariablen, anstatt lokalen Variablen in der Methode.


Siehe #4 > zu 3)
Code:
import java.util.*;
/**
* Beschreiben Sie hier die Klasse Loopn.
*
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/

    public class Loop {
    private ArrayList<Integer>liste;  
 
   
    public Loop(Integer[]liste1)
    {
        liste = new ArrayList<Integer>();
        for(int index:liste1)
        {
        liste.add(index);
        }
    }
       
        public int sumUp(int index)
     {
       int sum=0;
     
        if(index>liste.size())

        {
        System.out.println("Index außerhalb der Liste");
        return 0;
       }
     
       while(index<liste.size())
        {
       
       
        sum+=liste.get(index);
        index++;
       
        }
       
        return sum;
       
    }
   


}

Jetzt sind die Variablen lokal im Methodenkopf drin.

Zum Iterator:

ist die While-Schleife in dieser Form mit erhöhen des Indexes kein "manueller" Iterator??
also ich denke wir sollen erstmal durch die Liste ohne den Iterator der Java Bibliothek nur mit einer while-Schleife iterieren und danach den Iterator der Bibliothek benutzen.
 
L

LucaToni

Aktives Mitglied
Java:
public int sumUp(int index)

     {

       int sum=0;

       int i=index;

       i=0;

        if(index>liste.size())



        {

        System.out.println("Index außerhalb der Liste");

        return 0;

       }

   

       while(i<=index)

        {

            sum=sum+liste.get(i);

            i++;

        }

        return sum;


VIELEN DANK EUCH BEIDEN.
DAS WAR EIN HARTER KAMPF XD
FUNKTIONIERT SO.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Durch Objekte iterieren? Java Basics - Anfänger-Themen 3
K Durch alle Attribute eines Objektes iterieren Java Basics - Anfänger-Themen 6
S OOP Durch ein Enum iterieren... Java Basics - Anfänger-Themen 47
G Durch Liste iterieren und nachkommastellen runden Java Basics - Anfänger-Themen 9
S Mit einer LinkedList vorwärts und rückwärts iterieren Java Basics - Anfänger-Themen 6
L Iterieren über eine CSV Datei Java Basics - Anfänger-Themen 7
T OOP Zwei Klassen Testen (Arrary Iterieren) Java Basics - Anfänger-Themen 6
feinperligekohlensaeure Arraylisten-Namen iterieren.. wie ? Java Basics - Anfänger-Themen 39
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
B OOP Über eine doppelt verkettete Liste iterieren Java Basics - Anfänger-Themen 4
L Iterieren über ArrayList Java Basics - Anfänger-Themen 1
AssELAss Über ein Objekt vom Typ BigDecimal iterieren Java Basics - Anfänger-Themen 6
A Über Jahr iterieren, Freitag der 13. Java Basics - Anfänger-Themen 2
A Array iterieren Java Basics - Anfänger-Themen 20
K For Each Schleife wieder von Beginn an iterieren Java Basics - Anfänger-Themen 12
V Hashmap Iterieren Java Basics - Anfänger-Themen 4
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
P Variablen ArrayList mit Bedingung iterieren Java Basics - Anfänger-Themen 2
H in for Schleife über Vector iterieren Java Basics - Anfänger-Themen 2
B Hashset iterieren problem Java Basics - Anfänger-Themen 3
K Datentypen Über Collection iterieren bringt fehler Java Basics - Anfänger-Themen 8
P Über HashMap iterieren -> NullPointerException Java Basics - Anfänger-Themen 2
J Collection ArrayList und mit erweitertem for iterieren Java Basics - Anfänger-Themen 7
A Struts: Über Collection iterieren mir Taglibs? Java Basics - Anfänger-Themen 13
G mit for each über Map iterieren :bahnhof: Java Basics - Anfänger-Themen 3
B Iterieren über eine Liste Java Basics - Anfänger-Themen 2
D HashMap iterieren Java Basics - Anfänger-Themen 7
Y Wie kann ich Konsoleneingaben durch den Scanner mit JUnit 4 testen? Java Basics - Anfänger-Themen 1
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
N for Schleife durch Rekursion ersetzen Java Basics - Anfänger-Themen 6
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
F Methode für Teilbarkeit durch 5 tut was anderes.... Java Basics - Anfänger-Themen 3
H Aufruf von Methoden durch Methoden Java Basics - Anfänger-Themen 3
H Wie kann ich durch Methoden definiren? Java Basics - Anfänger-Themen 8
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
O Typparameter durch Wildcards verallgemeinern Java Basics - Anfänger-Themen 3
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
B Import Tabelle - Struktur durch User einstellbar Java Basics - Anfänger-Themen 4
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
F Ein Datum (int) durch Methode als String formatieren Java Basics - Anfänger-Themen 2
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
UnknownInnocent Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
H OOP eine Zahl immer weiter durch 2 teilen Java Basics - Anfänger-Themen 15
I Null-Überprüfung durch Lambda-Expressions abkürzen Java Basics - Anfänger-Themen 8
W Teilstring durch Teilstring mittels StringBuilder ersetzen Java Basics - Anfänger-Themen 7
N Denksportaufgabe durch Algorithmus lösen Java Basics - Anfänger-Themen 2
H Array mit Zahlen die durch 3 und 5 teilbar sind erstellen Java Basics - Anfänger-Themen 13
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
J Die Zahl herausfinden die durch 2 - 30 Teilbar ist... Java Basics - Anfänger-Themen 17
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
W JLabel, Farbe durch Listener ändern Java Basics - Anfänger-Themen 6
T Extrahiertes Objekt durch Getter bekommen Java Basics - Anfänger-Themen 2
R Eine Schleife durch eine Methode schließen? Java Basics - Anfänger-Themen 4
N Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner) Java Basics - Anfänger-Themen 7
S For-Schleife durch "ESC" verlassen? Java Basics - Anfänger-Themen 2
C char in String suchen und durch anderen String ersetzen Java Basics - Anfänger-Themen 2
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
V Durch 0 teilen Java Basics - Anfänger-Themen 2
V Durch Methode Objekt löschen Java Basics - Anfänger-Themen 2
D Klasse durch eine Schleife wiederholen Java Basics - Anfänger-Themen 1
J Wie lege ich eine durch Random ausgesuchte Zahl in ein Array? Java Basics - Anfänger-Themen 3
S button kommt durch bild Java Basics - Anfänger-Themen 13
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
W Objektname durch Tastaturbefehl eingeben Java Basics - Anfänger-Themen 7
K ArrayList durch ArrayList ersetzen Java Basics - Anfänger-Themen 5
G Objektübergabe durch Parameter Java Basics - Anfänger-Themen 3
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
T Threads Durch threads gestartete Prozesse killen Java Basics - Anfänger-Themen 2
M ArrayList durch OutputStream in Datei Java Basics - Anfänger-Themen 9
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
F Erste Schritte Hausaufgaben-Prob. - Iterative Prog. Zahlen aufsummieren, wenn durch k>0 teilbar. Java Basics - Anfänger-Themen 5
T Input/Output Programm beenden durch Eingabe Java Basics - Anfänger-Themen 1
K Tiefen- und Breitensuche beim Baum durch Stack und Warteschlange Java Basics - Anfänger-Themen 1
Ponychan95 Erste Schritte Switch fällt immer bis zum default durch Java Basics - Anfänger-Themen 4
J Warum wird Array durch Methode ohne Rückgabewert verändert? Java Basics - Anfänger-Themen 5
J Durch 2-Dimensionales Array "bewegen" will nicht so recht hinhauen Java Basics - Anfänger-Themen 2
B Durch eine Liste von Strings laufen Java Basics - Anfänger-Themen 6
D javacode durch Html ausfuehren Java Basics - Anfänger-Themen 13
K Durch ArrayList laufen Java Basics - Anfänger-Themen 8
X Erste Schritte Lernen durch Videoreihe Java Basics - Anfänger-Themen 35
M Möglich? Methode aufrufen deren Bezeichner zur Laufzeit durch einen überg. String festgelegt wird Java Basics - Anfänger-Themen 3
T Best Practice JUnit: Wie Klassen durch Stubs/Mockups ersetzen Java Basics - Anfänger-Themen 7
H Text durch Checkbox erscheinen lassen Java Basics - Anfänger-Themen 2
J Datensätze aus Txt Datei auslesen - Datensätze durch stöbern Java Basics - Anfänger-Themen 5
Ananaskirsche Input/Output Platzhalter durch String in yml-Datein ersetzen Java Basics - Anfänger-Themen 5
F Speicherlast mehrere GB durch kleine png files? Java Basics - Anfänger-Themen 1
AssELAss ß durch ss oder SS ersetzen Java Basics - Anfänger-Themen 10
W 2dim - Array Ausgabe von Zahlen, teilbar durch 3. Java Basics - Anfänger-Themen 4
T Division durch 0 abfangen mit Schleife Java Basics - Anfänger-Themen 4
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben