Verschachtelte Arraylist und deren Größe auslesen

  • Themenstarter Reiner Wissensdurst
  • Beginndatum
R

Reiner Wissensdurst

Gast
Hallo zusammen,
(ganz kurz):Bisher habe ich dieses Forum nur passiv genutzt, um meine vielen Programmierfragen als Java-Anfänger zu lösen. Das hat immer gut geklappt! Jetzt habe ich jedoch ein Problem, ohne auf die Lösung gestoßen zu werden:

Ich habe eine Arraylist. Diese enthält Objekte mit Namen und wiederum einer Arraylist.

Das Auslesen der verschaltelten Einträge in einer Schleife klappt nicht - und weil ich das Prinzip nicht verstanden habe, klappt auch das Auslesen der Anzahl der Einträge nicht.
Ich tippe mal, ich "caste" falsch. Nur wieso?

Thank you in advance.
Java:
package java_lernen;

import java.util.*;

public class Java_lernen {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        Datensatz ds = new Datensatz();
        List<Datensatz> datenbank = new ArrayList<>();

        ds.setName("Wissensdurst");
      
        // mehrere Strings in einen Datensatz eintragen
        for (int i = 0; i <= 4; i++) {
            ds.setEintrag("Eintrag Nr.:" + i);
        }
        //Datensatz in Datenbank eintragen
        datenbank.add(ds);

        /*
        Problem:
        Ausgabe aller Einträge EINES Datensatzes in einer Schleife
  
        for ( <type> <variable> : <array> )
            <loop body>
        */
        
        // das geht NICHT!
     
        for (Datensatz elem: datenbank) {
            System.out.println( (String)datenbank.get(0).getEintrag(elem) );
        }
      
        // so soll das sein!
        System.out.println(datenbank.get(0).getEintrag(0));
        System.out.println(datenbank.get(0).getEintrag(1));
        System.out.println(datenbank.get(0).getEintrag(2));
        System.out.println(datenbank.get(0).getEintrag(3));
        System.out.println(datenbank.get(0).getEintrag(4));
        /*
        nächstes Problem:
        Wie ermittle ich die Anzahl der EINTRÄGE eines DATENSATZES?
        */
      
        // Gibt nur die Anzahl der Datensätze aus
        System.out.println(datenbank.size());
      
      
    }
}

class Datensatz {

    private String Name;
    private final ArrayList<String> eintrag;

    public Datensatz() {
        eintrag = new ArrayList<>();
    }

    public String getName() {
        return Name;
    }

    public void setName(String Name) {
        this.Name = Name;
    }

    public void setEintrag(String datum) {
        eintrag.add(datum);
    }

    public String getEintrag(int nr) {
        String ein = eintrag.get(nr);
        return ein;
    }

}
 

Thallius

Top Contributor
Da Du die ArrayList Deiner Klasse Datensatz private gemacht hast und es keine Methode count in dieser Klasse gibt ist es nicht möglich die Anzahl der Strings in dem Datensatz zu ermitteln.

Gruß

Claus
 

Thallius

Top Contributor
Der Parameter von getEintrag ist doch falsch. Da gehört doch der index des Eintrages hin.
Und meinen tust du sicher: elem.getEintrag(<index>); ???

Damit hat er dann aber immer noch nicht alle Strings wie er es gerne hätte. Dummerweise bekommt er aber auch nicht heraus wieviele Strings überhauzpt in dem Datensatz sind. Also kann er auch keine Schleife erstellen die die Strings ausliest. Das ginge höchstens mit einer gewollten IndexOutOfBounds Exception was ziemlich unschön wäre...

Gruß

Claus
 
R

Reiner Wissensdurst

Gast
Schönen Dank erstmal.
@claus: Ich habe gelesen, dass Instanzvariablen immer "private" deklariert werden sollen und getter/setter immer public (HeadFirst Java, p.81). Aber auch wenn ich das ändere, habe ich leider noch keine Ahnung, wie ich in die verschachtelte ArrayList komme.
Der Gedanke, eine Methode count dafür zu schreiben, mag funktionieren, aber wenn ich z.B. weitere ArrayLists innerhalb von Datensatz bräuchte, müsste ich für jede wieder z.B. in einem Array die Anzahl der "counts" verwalten. Ok, geht, aber irgendwie finde ich es komisch.
List/ArrayList haben doch die Methode .size(). Wieso kann ich die denn nicht auch innerhalb der geschachtelten ArrayList benutzen? Das wäre für mich DIE Lösung.

@JStein52: Meinst du den Eintrag in der Zeile?
System.out.println( (String)datenbank.get(0).getEintrag(elem) );

Deinen Hinweis
elem.getEintrag(<index>);
verstehe ich leider nicht. Ist <index> ein Typ (wegen der spitzen Klammern)? Eigentlich sollte es ein index vom Typ int sein, stimmt, aber irgendwie ist mein Ansatz schrott. Ich habe es mal geändert
Java:
   int i = 0;
        for (Datensatz elem: datenbank) {
           
            System.out.println( (String)datenbank.get(0).getEintrag(i) );
            i++;
            System.out.println(i);
        }

und natürlich läuft die Schleife nur 1x durch. Ich habe ja auch nur einen DATENSATZ angelegt.

Scheinbar hängen beide Fragen zusammen:
1. Wie komme ich an die eingebettete ArrayList?
2. Wie komme ich an die Größe (z.B. mit .size()) der eingebetteten ArrayList?

Gruß,
Tobias
 
R

Reiner Wissensdurst

Gast
@JStein52: Es stimmt übrigens, mit dem Index komme ich ans Array. Danke für den Hinweis!! :)

Wenn ich jetzt noch die Größe der ArrayList herausbekäme, könnte ich den PC für heute glücklich ausschalten!

sowas eben (was ja nicht geht):
Code:
System.out.println( (String)datenbank.get(0).getEintrag(i).size() );

Gruß,
Tobias
 

JStein52

Top Contributor
Da hat Claus recht, da musst du wohl oder übel für jede Liste eine count-Funktion machen. Das private ist aus meiner Sicht auf jeden Fall in Ordnung.

U(nd noch ein Hinweis zu deiner Frage bzgl. elem :

Du iterierst doch über alle Elemente der datenbank und jedes einzelne davon wird in der Schleife via elem refenrenziert ! also elem.getEintrag(....)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Collections verschachtelte ArrayList abfüllen Java Basics - Anfänger-Themen 5
S Verschachtelte for-Schleife Java Basics - Anfänger-Themen 2
laxla123 Verschachtelte If-Else Schleife Java Basics - Anfänger-Themen 21
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
Düsseldorf2002 Datentypen Verschachtelte LinkedList Java Basics - Anfänger-Themen 5
J Verschachtelte Methoden Java Basics - Anfänger-Themen 9
P Verschachtelte Hashmap Java Basics - Anfänger-Themen 6
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
B Verschachtelte For Schleifen Java Basics - Anfänger-Themen 8
W Verschachtelte Objekte wieder auspacken Java Basics - Anfänger-Themen 3
S Verschachtelte Schleife Java Basics - Anfänger-Themen 3
F Methoden Verschachtelte if else Methode Java Basics - Anfänger-Themen 10
Z Verschachtelte If-Bedingung Java Basics - Anfänger-Themen 6
Y Verschachtelte For-Schleife Java Basics - Anfänger-Themen 5
D verschachtelte Schleifen Java Basics - Anfänger-Themen 6
M Verschachtelte Forschleifen Java Basics - Anfänger-Themen 2
F Klassen Zugriff auf verschachtelte Objekte Java Basics - Anfänger-Themen 11
J static verschachtelte Klassen und innere Klassen Java Basics - Anfänger-Themen 1
TheMenox Verschachtelte If Bedingung Java Basics - Anfänger-Themen 4
C Verschachtelte Map auslesen Java Basics - Anfänger-Themen 4
H Best Practice Wie mit break verschachtelte Schleifen komplett verlassen? Java Basics - Anfänger-Themen 2
F Verschachtelte Schleifen Java Basics - Anfänger-Themen 4
J Hilfe verschachtelte Schleifen Java Basics - Anfänger-Themen 5
F Erste Schritte Switch case vs. Verschachtelte If Anweisung Java Basics - Anfänger-Themen 11
X verschachtelte suche Java Basics - Anfänger-Themen 8
S Verschachtelte Exceptions - Übersicht verbessern Java Basics - Anfänger-Themen 2
D Verschachtelte Objekterzeugung Java Basics - Anfänger-Themen 6
S verschachtelte for-Schleife Java Basics - Anfänger-Themen 6
X Verschachtelte Annotationen Java Basics - Anfänger-Themen 9
J verschachtelte Schleife Java Basics - Anfänger-Themen 10
P Verschachtelte Schleife vorzeitig abbrechen. Java Basics - Anfänger-Themen 50
S verschachtelte for Schleife und Ergebniss. Java Basics - Anfänger-Themen 3
J verschachtelte for-schleifen Java Basics - Anfänger-Themen 2
S Verschachtelte Klassen Java Basics - Anfänger-Themen 12
D Verschachtelte IF-Anweisung Java Basics - Anfänger-Themen 10
C Verschachtelte for-schleifen Java Basics - Anfänger-Themen 10
C Verschachtelte For-Schleifen Java Basics - Anfänger-Themen 5
3 Verschachtelte Zuweisung Java Basics - Anfänger-Themen 4
M Tief verschachtelte Packages Java Basics - Anfänger-Themen 7
T add-Methode für verschachtelte ArrayLists Java Basics - Anfänger-Themen 10
C Verschachtelte For-Schleife Java Basics - Anfänger-Themen 6
E Verschachtelte If-Anweisungen - "else without if" Java Basics - Anfänger-Themen 4
T Datentypen Verschachtelte Map durchlaufen Java Basics - Anfänger-Themen 4
P Verschachtelte For-Schleifen Java Basics - Anfänger-Themen 4
F Verschachtelte Arrays kopieren und überschreiben Java Basics - Anfänger-Themen 4
J Verschachtelte for schleife mit dynamischer Anzahl an Schleifen Java Basics - Anfänger-Themen 10
M Verschachtelte Strukturen. Java Basics - Anfänger-Themen 7
J Verschachtelte for-Schleife mit Löschen von Iterationen. Wie über Iterator abbilden? Java Basics - Anfänger-Themen 6
M Viele verschachtelte Schleifen Java Basics - Anfänger-Themen 14
A Verschachtelte Hashtable ausgeben. Java Basics - Anfänger-Themen 3
W verschachtelte while schleife Java Basics - Anfänger-Themen 8
G Verschachtelte Case Fallunterscheidung Java Basics - Anfänger-Themen 7
W verschachtelte For-Schleife - continue Java Basics - Anfänger-Themen 8
R Verschachtelte Schleife? Java Basics - Anfänger-Themen 6
M sehr weit verschachtelte XML-datei mit jdom auslesen Java Basics - Anfänger-Themen 4
S verschachtelte while Schleifen Java Basics - Anfänger-Themen 5
R Bedingte Opeatoren / Verschachtelte Operatoren Java Basics - Anfänger-Themen 4
krgewb ArrayList allgemein halten Java Basics - Anfänger-Themen 6
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
W ArrayList und toString Java Basics - Anfänger-Themen 17
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
M 2d ArrayList durchgehen Java Basics - Anfänger-Themen 2
Blkckroll45 Arraylist Java Basics - Anfänger-Themen 6
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
D Arraylist mit Komplexen Datentyp Java Basics - Anfänger-Themen 3
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
M ArrayList<TreeNode<T>> fortlaufende Nummerierung der Elemente Java Basics - Anfänger-Themen 5
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
S ArrayList Username und passwort mit JTextField eingaben abgleichen Java Basics - Anfänger-Themen 10
F Werte in einer Arraylist Zählen Java Basics - Anfänger-Themen 2
F Erste Schritte Zahlenreihe von Arraylist in 3erBlöcke sortiert in neue Arraylist Java Basics - Anfänger-Themen 2
M ArrayList mit einer Schleife befüllen Java Basics - Anfänger-Themen 2
F Methode ArrayList mit Eingabewert Java Basics - Anfänger-Themen 2
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
thobren jtable arraylist Java Basics - Anfänger-Themen 12
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
Zeppi OOP ArrayList Java Basics - Anfänger-Themen 2
P ArrayList Java Basics - Anfänger-Themen 4
L ArrayList auf 4 Elemente begrenzen Java Basics - Anfänger-Themen 56
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben