ArrayList mit einem aktiven Element

Status
Nicht offen für weitere Antworten.

Ishildur

Bekanntes Mitglied
Hallo zusammen
In meiner Applikation benötige ich an vielen verschiedenen Stellen eine ArrayList, welche zusätzlich ein aktives Element besitzt!
Diese benötige ich bspw. um eine Liste sämtliche Fenster sowie zusätzlich das aktive Fenster zu speichern!
Ich habe dies momentan so gelöst, dass ich eine Klasse von ArrayList abgeleitet habe und sämtliche add, remove set Methoden überschrieben habe, in welchen iich sicherstelle, ob das zu löschende Element nicht das "aktive" Element ist.

Gäbe es hier vielleicht noch eine elegantere Möglichkeit?

Mfg Ishildur
 

0x7F800000

Top Contributor
Bin ich hier der einzige, der nicht nachvollziehen kann was sich Ishildur unter einem "aktiven element" vorstellt? ???:L
 

Ishildur

Bekanntes Mitglied
Naja, dies habe ich zugegebenermassen etwas spährlich ausgedrückt! Also mit einem "aktiven" Element meine ich im Prinzip einfach nur eine Referenz, welche auf ein bestimmtes Element innerhalb der ArrayList zeigt. Dieses wird verwendet, um bspw. zu speichern, welches Fenster "aktiv" ist, also angezeigt werden soll, oder welche Seite eines Buches gerade "aktiv", also aufgeschlagen ist.

Wenn ich nun also ein erstes Element in die Liste einfüge, so soll dieses als "aktives" Element gespeicher werden. Wenn ich ein Element aus der Liste entferne, soll sichergestellt werden, dass es nicht das "aktive" ist, um zu verhindern, dass bspw. eine Seite aus einem Buch entfernt wird, dass gerade angezeigt wird usw.

Das Ganze sieht dann etwas so aus:

Code:
 // -------------------------------- overriden method "remove" --------------------------------
 public boolean remove(Object obj){
  // set the active element to null if it's the element to be removed
  // and call the original method
  if(this.elmAct == obj) this.elmAct = null;
  return super.remove(obj);
 }
 // -------------------------------------------------------------------------------------------
 

0x7F800000

Top Contributor
naja, sowas gehört normalerweise nicht zu den aufgaben einer ArrayList. Aber das lässt sich leicht mit einer kleinen wrapper-klasse beheben, die ArrayList wrappt, jedoch zusätzlich eine referenz auf das "aktive" element speichert, und einige abfragen durchführt, bevor es löschbefehle an die ArrayList weiterleitet. Oder von ArrayList ableiten, und die methoden wirklich überschreiben, allerding musst du dann natürlich nicht die ganze funktionalität der ArrayList neuimplementieren, sondern wiederum nur ein paar zusätzliche abfragen einbauen, bevor du die eigentlichen befehle an die oberklasse (also ArrayList) weiterleitest.
[edit:] ja, also ich würde das auch etwa so machen wie es schon in deinem code steht, sehe da keine wesentlich einfachere möglichkeit, aber was heißt "einfachere"? ist doch schon einfach genug oder nicht?
 

HLX

Top Contributor
Andrey hat gesagt.:
[edit:] ja, also ich würde das auch etwa so machen wie es schon in deinem code steht, sehe da keine wesentlich einfachere möglichkeit, aber was heißt "einfachere"? ist doch schon einfach genug oder nicht?
Schade, hat so gut angefangen dein Post. :wink:

Wie du schon geschrieben hast, ist ein Wrapper, bzw. ein Pool eine bessere Lösung. Hier musst du nur die Funktionen implementieren, die du wirklich brauchst und stellst sicher, dass auch nur notwendige Funktionen verwendet werden können. Bei der Ableitung einer ArrayList musst du sicherstellen, dass sich JEDE Public-Methode von ArrayList konsistent verhält, sowohl bei der Implementierung als auch bei der Pflege der Klasse. Halte ich für kritisch - und wie du schon sagtest, ist es nicht Aufgabe der ArrayList, Informationen über ihren Inhalt zu kennen. Die Keksdose interessiert sich auch nicht dafür, ob Butterkekse oder Weihnachtsplätzchen (oder gar Einmachgummis) in ihr gelagert werden.

Also: z.B. eine Klasse "FramePool", die eine ArrayList hält und die erforderlichen Hinzufüge-, Enfernen-, und Informationsmethoden enthält.
 

Janus

Bekanntes Mitglied
ich halte es eher für bedenklich, dass offenbar völlig ungekapselter zugriff auf die listen erlaubt wird, obwohl sie nicht wie listen verwendet werden dürfen.
 

0x7F800000

Top Contributor
HLX hat gesagt.:
Schade, hat so gut angefangen dein ;)
ja, irgendwie hab ich mich wohl von diesem codestück von Ishildur zu sehr ablenken lassen oder so :oops:
naja, okay, ich lass die faulen ausreden, ich bin halt einfach dämlich^^ :lol: War echt größtenteils müll was ich da hingeschrieben hab.
 

HLX

Top Contributor
Janus hat gesagt.:
ich halte es eher für bedenklich, dass offenbar völlig ungekapselter zugriff auf die listen erlaubt wird, obwohl sie nicht wie listen verwendet werden dürfen.

Daher der kapselnde Vorschlag von mir. :wink:

Andrey hat gesagt.:
naja, okay, ich lass die faulen ausreden, ich bin halt einfach dämlich^^ War echt größtenteils müll was ich da hingeschrieben hab
Mangelnde Selbstkritik kann man dir auf jeden Fall nicht unterstellen. Der Anfang passte - bist m.E. nur irgendwann falsch abgebogen. :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M ArrayList oder LinkedList Allgemeine Java-Themen 10
C Sortieren und Selektieren einer ArrayList<Point3D> Allgemeine Java-Themen 6
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
B Type mismatch: cannot convert from Graph.Edge to ArrayList<Graph.Edge> Allgemeine Java-Themen 21
R ArrayList Allgemeine Java-Themen 4
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
J ArrayList, ganze Zeilen löschen oder überspringen Allgemeine Java-Themen 4
L ArrayList sortieren Allgemeine Java-Themen 2
C ArrayList Problem Allgemeine Java-Themen 3
O Datentypen Wie kann ich den Typ einer ArrayList abfragen ? Allgemeine Java-Themen 7
S Best Practices CopyConstrutor mit ArrayList Allgemeine Java-Themen 1
S ArrayList Design Allgemeine Java-Themen 4
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
MiMa Person in einer Arraylist hinzugügen mit Prüfung ? Allgemeine Java-Themen 6
X Adjazenzliste ohne ArrayList Allgemeine Java-Themen 6
X Output von ArrayList Allgemeine Java-Themen 3
H Stream in ArrayList umwandeln Allgemeine Java-Themen 2
H Mehrere Datentypen in einer Arraylist speichern Allgemeine Java-Themen 9
H Arraylist mit anderer ArrayList überschreiben Allgemeine Java-Themen 17
MiMa ArrayList sortieren?? Allgemeine Java-Themen 5
Curtis_MC Pointer mit ArrayList vergleichen Allgemeine Java-Themen 6
F ArrayList`s in Klassen mit Getter/Setter Allgemeine Java-Themen 8
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
F Arraylist vollständig abspeichern und laden Allgemeine Java-Themen 1
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
D ArrayList Indexlänge ändern Allgemeine Java-Themen 2
E Elemente innerhalb einer ArrayList vergleichen Allgemeine Java-Themen 33
K ursprüngliche ArrayList ändert sich bei Übergabe in Methode Allgemeine Java-Themen 18
N Mehrdimensionale ArrayList mischen Allgemeine Java-Themen 10
S JTable - mehrere ausgewählte Rows in ArrayList Allgemeine Java-Themen 5
MiMa Date aus einer ArrayList<Date> holen ?? Allgemeine Java-Themen 5
MiMa ArrayList Rückgabewerte aus einer Funktion Allgemeine Java-Themen 15
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
M Was geschieht mit Java-Klasse, die aus ArrayList entfernt wird? Allgemeine Java-Themen 10
M Methoden Generische Methode für ArrayList Allgemeine Java-Themen 7
T Collections ArrayList Sortieren Allgemeine Java-Themen 4
P GUI: ArrayList anzeigen funktioniert nicht Allgemeine Java-Themen 5
H ArrayList: Leere Elemente finden? Allgemeine Java-Themen 2
GreenTeaYT Verständnisprobleme zur Arraylist Allgemeine Java-Themen 1
T Methoden Methode zum durchsuchen einer ArrayList Allgemeine Java-Themen 8
K ArrayList sortieren Allgemeine Java-Themen 16
A Bestimmte Inhalte aus ArrayList 1 in ArrayList 2 kopieren Allgemeine Java-Themen 6
S Mehrdimensionales ArrayList ins HashSet Allgemeine Java-Themen 10
C ArrayList Allgemeine Java-Themen 8
Streeber Probleme mit AWT-EventQueue: ArrayList Elemente hinzufügen Allgemeine Java-Themen 1
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
L Von ArrayList abgeleitete Klasse nur mit bestimmten Objekten füllen Allgemeine Java-Themen 1
K Array in ArrayList Allgemeine Java-Themen 16
Paul15 2D Arraylist in Jtable Allgemeine Java-Themen 1
Paul15 Arraylist 2D Allgemeine Java-Themen 8
B ArrayList in ein Objekt legen Allgemeine Java-Themen 1
Neumi5694 Datentypen ArrayList vs TreeMap Allgemeine Java-Themen 6
F ArrayList Allgemeine Java-Themen 11
X ArrayList will nicht so wie ich will. Hilfe Allgemeine Java-Themen 8
N ArrayList in eigenem Object nicht richtig serialisierbar Allgemeine Java-Themen 14
M ArrayList mit verschiedenen Datentypen in String konvertieren Allgemeine Java-Themen 10
Z Elemente einer ArrayList von rechts wegnehmen Allgemeine Java-Themen 5
W Arraylist Text Suchen und Datei löschen Allgemeine Java-Themen 5
R ArrayList und HashMap Allgemeine Java-Themen 7
T ArrayList zeilenumbruch entfernen Allgemeine Java-Themen 13
D Arraylist/For Schleife/Scanner Allgemeine Java-Themen 30
E ArrayList Anzahl der gleichen Elemente Allgemeine Java-Themen 4
Doopy ArrayList plötzlich leer Allgemeine Java-Themen 2
D Arraylist eigener Klasse an iReport übergeben Allgemeine Java-Themen 7
L ArrayList Inhaltstyp. Allgemeine Java-Themen 5
Z Klassen ArrayList selbst machen Allgemeine Java-Themen 5
J Arraylist speichern und laden? Allgemeine Java-Themen 5
C Generics Objekt in ArrayList Allgemeine Java-Themen 2
D ArrayList index auf gültigkeit prüfen Allgemeine Java-Themen 12
M ArrayList<String> Frage Allgemeine Java-Themen 7
O ArrayList kaputt?! Allgemeine Java-Themen 5
M ArrayList<Foo> in ein Foo[] konvertieren? Allgemeine Java-Themen 8
Bananabert Abstract ArrayList Allgemeine Java-Themen 4
A Collections Array-Elemente in ArrayList kopieren ohne Schleife Allgemeine Java-Themen 7
O ArrayList - Serialisierungs-Problem Allgemeine Java-Themen 11
M JTable + ArrayList Allgemeine Java-Themen 3
M Datentypen ArrayList in Integer konvertieren Allgemeine Java-Themen 3
O Collections ListIterator gibt Inhalt von ArrayList nicht aus Allgemeine Java-Themen 3
Madlip Variablen 3 Werte aus ArrayList und weiter ... Allgemeine Java-Themen 4
S arraylist nach n. Eintrag numerisch Sortiren Allgemeine Java-Themen 5
O Problem beim Auslesen einer Arraylist von JComboBoxen Allgemeine Java-Themen 2
R Threads korrekte Synchronisation bei Vector und ArrayList Allgemeine Java-Themen 6
M Kovariante Rückgabewerte mit ArrayList Allgemeine Java-Themen 3
H LinkedList<LinkedList<String>> nach ArrayList<ArrayList<String>> ? Allgemeine Java-Themen 9
E NetBeans Vector durch ArrayList ersetzen Allgemeine Java-Themen 4
Maxim6394 Problem mit ArrayList Allgemeine Java-Themen 5
E Berechnung in Arraylist Allgemeine Java-Themen 10
E ArrayList mit unbekannter Größe Allgemeine Java-Themen 8
V Fork Join bei Arraylist Allgemeine Java-Themen 6
H Fehler in Arraylist Allgemeine Java-Themen 2
S Datensätze in eine ArrayList<Movie> speichern Allgemeine Java-Themen 13
S Alle Kombinationen aus ArrayList - Potenzmenge Allgemeine Java-Themen 7
V ArrayList vergleichen mit .equals? Allgemeine Java-Themen 13
J ArrayList-Problem Allgemeine Java-Themen 16
S Von einer ArrayList in die andere schreiben? Allgemeine Java-Themen 6
S ArrayList<JLabels> "malen" Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben