Container Objekt herausfinden

flip0r

Mitglied
Hallo,

ich habe folgendes problem:

ich habe eine liste von Objekten welche wiederum eine liste von anderen Objekten enthhält, bsp:
Ich habe eine liste von masken, jede maske enthält einzelne abschnitte und jeder abschnitt hat mehrere GUI-Elemente.

static List<Maske> masken = new LinkedList<Maske>();
static List<Abschnitt> abschnitte = new LinkedList<Abschnitt>();
static List<Element> elemente = new LinkedList<Element>();

jetzt meine frage, wie bekomme ich am besten zu einem element e den abschnitt und die maske heraus ohne in element die variablen abschnitt und maske zu haben. ist das überhaupt möglich?

vielen dank im voraus

grüße flip0r
 

XHelp

Top Contributor
Nach deinem Aufbau haben die Sachen nichts miteinander zu tun. Woher weß denn die Maske, welche Abschnitte sie beinhaltet?
 

flip0r

Mitglied
ok dann das noch dazu :) :

Java:
elemente.clear();
elemente.add(new Texteingabe("LetzteAenderung", "anzeigend", true));
elemente.add(new Texteingabe("AnzahlZugriffe", "anzeigend", false));
abschnitte.add(new Abschnitt("Abschnitt_Dokumentation", "aktiv", elemente));
elemente.clear();
elemente.add(new Button("Speichern", "aktiv", "Speichern der Eingaben"));
elemente.add(new Button("Zurueck", "aktiv", "Speichern und zum vorherigen Schritt"));
abschnitte.add(new Abschnitt("Schalterzeile", "aktiv", elemente));
elemente.clear();
masken.add(new Maske("Maske_maskenname", abschnitte));
...

button, texteingabe usw sind dabei vom typ element

ich kann mir jetzt zu jeder maske alle abschnitte zu jedem abschnitt ... anzeigen lassen, und würde das auch gern in umgekehrter richtung mache, sprich zu einem element die maske ausgeben lassen
 
S

SlaterB

Gast
grundsätzlich gilt immer: entweder ist die Info irgendwo abgelegt oder du suchst sie per Durchlauf (oder kann berechnet werden, hier nicht),
Durchlauf dürfte klar sein, mit Sortierung schneller möglich als komplett sequentiell,
für Ablage gibt es die Attribute, die du nicht willst, oder alternativ eine separate Datenstruktur, z.B. Map<Element,Abschnitt>
 

flip0r

Mitglied
vielen dank, dann wird es wohl der durchlauf sein :)

eine frage noch, ich würde ja dann für jedes element die masken und abschnitte durchlaufen und eine methote aufrufen, cached die vm von java das ergebnis des methodenaufrufs irgendwie (beziehungsweise irgendwelche zwischenergebnisse wie maske.getabschnitte())? da das ergebnis für alle elemente eines abschnittes ja immer identisch ist.
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Dann kommst du nicht drumherum alle Masken, dann alle Abschnitte und dann alle Elemente durchzulaufen.
Aber mit dem
Code:
clean
und immer wieder die selbe Liste verwenden würde ich aufpassen. Je nach dem was die
Code:
add
-Methode macht, kann das zu Fehlern führen

Edit: ja, da scheint genau das angesprochene Problem zu sein. Du verwendest immer wieder die selbe Liste und vermutlich macht add sowas wie:
Code:
this.elemente = elemente
 
Zuletzt bearbeitet:
S

SlaterB

Gast
@flip0r
hmm, nein, von extremen Thread-Synchronisations-Problemen abgesehen wird normalerweise nichts gecacht,

wenn in einer Liste 1 Mio. mal Object x und danach Object y enthalten ist, die verschiedenes zurückgeben, dann wird beim Durchlauf eben an Position 1.000.001 etwas festgestellt (bzw. -1 bei Indexen, bei 0 beginnend)
 
Zuletzt bearbeitet von einem Moderator:

flip0r

Mitglied
Wie könnte es da zu fehlern kommen? nach jedem add abschnitt kommt ein clear auf elemente und auf jeden add maske kommt ein clear abschnitte (danach müsste die liste meines erachtens wieder leer sein?!).
das problem ist der code wird mit expand generiert, ich habe also leider nicht die möglichkeit immer neue objekte mit namen zu erzeugen da die namen sonst mehrfach vorkommen (mehrere 1000 elemente insgesamt)
 
S

SlaterB

Gast
siehe letzte Antwort von XHelp,
dass du dieselbe Liste immer wieder verwendest und leerst ist natürlich nicht schön,
danach hatte ich nicht geschaut
 

flip0r

Mitglied
naja das ist die add methode von LinkedList.
hättet ihr da eine bessere lösung? also funktionieren tut es so auf jeden fall (bis jetzt^^).
die möglichkeit für jedes element ein objekt anzulegen habe ich leider nicht wegen mehrdeutigen elementnamen in den unterschiedlichen abschnitten (edit: das wäre zumindest nicht mehr übersichtlich).

xpand ist eine templatesprache zum generieren von code z.b.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
> die möglichkeit für jedes element ein objekt anzulegen habe ich leider nicht

du legst doch sowohl Masken als auch Abschnitte als auch Elemente = Button & Co neu an, was meinst du mit diesem Satz?

das Problem ist aber, dass du immer dieselbe Liste verwendest, überall wo du clear() aufrufst muss eigentlich new ArrayList() oder so stehen
 

flip0r

Mitglied
Bis auf die Tatsache, dass es überhaupt nicht funktioniert, weil du die Werte immer wieder überschreibst...

doch, da die gesammelten abschnitte einer maske zum beispiel bei

Java:
masken.add(new Maske("Maske_maskenname", abschnitte));

gesichert werden, jede maske hat eine liste von abschnitten. siehe konstruktor:

Java:
public Maske(String name, String funktion, List<Modus> modus, List<Abschnitt> abschnitte) {
		this.name = name;
		this.funktion = funktion;
		this.modus.addAll(modus);
		this.abschnitte.addAll(abschnitte);
}

nachdem sie gesichert wurden leere ich die liste wieder.


die werte kommen aus einem modell einer Domain specific language, aber das sollte eigentlich bei dem problem keine rolle spielen. xpand (bzw. das OAW framework) nutze ich um die modelle einzulesen und daraus den java code zu generieren.
 
S

SlaterB

Gast
hoffentlich ist das in Abschnitt mit den Elementen genauso,

wie auch immer, dann ist das also kein Fehler, besteht aktuell eine Frage?
 

flip0r

Mitglied
jap das ist mit den elementen genauso. naja ihr habt ja gesagt das es falsch ist, das war jetzt noch meine frage. also müsste jetzt alles geklärt sein.

vielen dank :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Klassen Doppelte Elemente aus Container entfernen Java Basics - Anfänger-Themen 6
H Zeichnung in Container Java Basics - Anfänger-Themen 8
J Container Java Basics - Anfänger-Themen 1
B Schleife über einen Container Java Basics - Anfänger-Themen 7
M GUI- mehrere Komponenten auf Container adden Java Basics - Anfänger-Themen 2
Q Container sinn? Java Basics - Anfänger-Themen 3
O Container Inhalt auslesen Java Basics - Anfänger-Themen 2
N aus Container components paint Java Basics - Anfänger-Themen 2
A Schnellster Container Java Basics - Anfänger-Themen 21
JAVAnnik Container erstellen Java Basics - Anfänger-Themen 19
N Container löschen?! Java Basics - Anfänger-Themen 3
M zwei JApplets in einem Container + GUI-Komponente Java Basics - Anfänger-Themen 12
D Container mit eigener Klasse Java Basics - Anfänger-Themen 5
H Container Probleme Java Basics - Anfänger-Themen 2
G Container für [key,value] elemente ? Java Basics - Anfänger-Themen 7
G unbound classpath container Java Basics - Anfänger-Themen 1
M Problem mit paint() und Container. Java Basics - Anfänger-Themen 8
C Container Java Basics - Anfänger-Themen 2
M Container Java Basics - Anfänger-Themen 2
H mehrere container Java Basics - Anfänger-Themen 2
L aufruf mit container -> ausgabe Java Basics - Anfänger-Themen 12
E Zweiten Container anlegen Java Basics - Anfänger-Themen 5
D alten Container wieder aufrufen Java Basics - Anfänger-Themen 11
G Größe vom Container abfragen. Java Basics - Anfänger-Themen 4
G Buttons listen - Probleme mit Container Java Basics - Anfänger-Themen 6
G Panel in Container einfügen Java Basics - Anfänger-Themen 7
D JTextField in einem Container, danach auslesen Java Basics - Anfänger-Themen 10
sambalmueslie Probleme mit Container und Komponenten. Java Basics - Anfänger-Themen 3
J Bilder auf Container oder alternativen Java Basics - Anfänger-Themen 2
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
Say Objekt Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
B Objekt in Klassendiagramm an fremdes Objekt weiterreichen? Java Basics - Anfänger-Themen 6
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
melaniemueller Fernseher als Objekt Java Basics - Anfänger-Themen 9
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
B Objekt kopieren und sämtliche Referenzen von diesem Objekt? Java Basics - Anfänger-Themen 3
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
S Aufzurufendes Objekt Java Basics - Anfänger-Themen 3
CptK Überprüfen ob übergebenes Objekt zu Generics passt Java Basics - Anfänger-Themen 2
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Objekt von EJB in Controller (CDI) - Klasse füllen? Java Basics - Anfänger-Themen 3
L Zufälliges Objekt aus der ArraylList ohne java.util.Random Java Basics - Anfänger-Themen 56
N LocalTime einem Objekt zuweisen Java Basics - Anfänger-Themen 2
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
tom.j85 Doppelte Foreach Schleife: Am Ende wird immer das Gleiche Objekt eingefügt Java Basics - Anfänger-Themen 4
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
M ArrayList - Objekt kopieren und ändern Java Basics - Anfänger-Themen 11
L Objekt an Methode übergeben Java Basics - Anfänger-Themen 4
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6
J Y-Koordinate von GUI-Objekt bestimmen Java Basics - Anfänger-Themen 2
M Auf erstelltes Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 5
H Referenz Objekt aufrufen Java Basics - Anfänger-Themen 12
M Objekt mit eindeutiger ID löschen, das nächste Objekt hat dann diese ID Java Basics - Anfänger-Themen 5
N Mit Objekt der Superklasse auf Methode der Subklasse zugreifen Java Basics - Anfänger-Themen 6
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
J Objekt bei Auswahl in jList ändern Java Basics - Anfänger-Themen 6
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14
H Objekt aus einem Array löschen Java Basics - Anfänger-Themen 1
H Objekt im Array speichern Java Basics - Anfänger-Themen 2
H Objekt mit Methode erstellen Java Basics - Anfänger-Themen 6
H Objekt als Attribut speichern Java Basics - Anfänger-Themen 11
E Was kommt in ein Objekt und was in die Main Methode? Java Basics - Anfänger-Themen 8
R Objekt in Konstruktor ist nicht zulässig Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben