Guten Abend Leute,
ich habe eine Container Klasse geschrieben, die die eingefügten Objekte intern in einer ArrayList abspeichert.
Nun soll ich mit einer Enum Klasse, wenn gewünscht, während der Laufzeit den Listentyp beliebig von ArrayList auf LinkedList ändern und auch wieder zurück. Ob die bisher eingefügten Objekte dabei verloren gehen ist egal.
Also ich soll in meiner Main Methode quasi schreiben
Container c1 = new Container();
c1.changeListType(Modus modus);
Modus heisst die Enum Klasse.
Hier meine Container Klasse :
Hat jemand ein Ansatz?
ich habe eine Container Klasse geschrieben, die die eingefügten Objekte intern in einer ArrayList abspeichert.
Nun soll ich mit einer Enum Klasse, wenn gewünscht, während der Laufzeit den Listentyp beliebig von ArrayList auf LinkedList ändern und auch wieder zurück. Ob die bisher eingefügten Objekte dabei verloren gehen ist egal.
Also ich soll in meiner Main Methode quasi schreiben
Container c1 = new Container();
c1.changeListType(Modus modus);
Modus heisst die Enum Klasse.
Hier meine Container Klasse :
Java:
package org.bonn.se.uebung2;
import java.util.ArrayList;
public class Container {
// Deklarierung der ArrayList - Typ Member, damit jedes Objekt, welches von
// Member implementiert eingefügt werden kann
ArrayList<Member> aList = new ArrayList<Member>();
private static Container c1;
private Container() {
}
// Singleton Pattern
public static Container getInstance() {
if (c1 == null) {
c1 = new Container();
}
return c1;
}
// Einfügen der Objekte mit der Exception für vorhandene Objekte
public void add(Member obj) throws ContainerException {
for (int i = 0; i < aList.size(); i++) {
if (aList.get(i).getID() == obj.getID()) {
throw new ContainerException("Das Member-Objekt mit der ID " + obj.getID() + " ist bereis vorhanden!");
}
}
aList.add(obj);
}
// Entfernen von Objekten - Als Rückgabewert wurde hier String genutzt
// Der Nachteil an einem sochen Fehlerhandling ist, dass hier für den
// Compiler kein Fehler entstanden ist.
// Für den Computer war es lediglich ein Vergleich und kein Fehler.
public String delete(int index) {
for (int i = 0; i < aList.size(); i++) {
if (aList.get(i).getID() == index) {
aList.remove(i);
return "Das Objekt mit der ID " + index + " wurde entfernt.";
}
}
return "Es existiert kein Objekt mit der ID " + index + " !";
}
// Durchlaufen der Liste und Ausgabe der toString Methode
public void dump() {
for (int i = 0; i < aList.size(); i++) {
System.out.println(aList.get(i).toString());
}
}
public int size() {
return aList.size();
}
}
Hat jemand ein Ansatz?