Hallo zusammen,
derzeitig beschäftige ich mich mit Doppelt verketteten Listen (DvL) und hänge schon direkt am Anfang. Da ich noch ein Neuling bin, was Java Programmierung angeht, fehlt mir wahrscheinlich der Überblick oder der richtige Gedankengang, daher hoffe ich das Ihr mir auf die Sprünge helfen könnt.
Meine Liste besitzt drei Klassen (ValueElement, ListElement, List), welche wiederum jeweils ein dazugehöriges Interface (IValueElement, IListElement, Ilist) implementieren.
Zu meiner Frage:
Ich habe ein Verständnisproblem damit wie die Klassen ValueElement und ListElement zusammen funktionieren / interagieren.
Im Interface IValueElement steht:
In der Klasse ValueElement steht:
Im Interface IListElement steht:
Bei der der Klasse ListElement setzen meine Fragen ein (siehe Kommentare).
Das grundlegende System der Listen habe ich verstanden, die Umsetzung in Java bereitet mir aber
die Verständnisprobleme.
Zur Ergänzung: Im Interface IList steht:
Wenn ihr mir weiterhelfen könntet wäre ich super glücklich =)
derzeitig beschäftige ich mich mit Doppelt verketteten Listen (DvL) und hänge schon direkt am Anfang. Da ich noch ein Neuling bin, was Java Programmierung angeht, fehlt mir wahrscheinlich der Überblick oder der richtige Gedankengang, daher hoffe ich das Ihr mir auf die Sprünge helfen könnt.
Meine Liste besitzt drei Klassen (ValueElement, ListElement, List), welche wiederum jeweils ein dazugehöriges Interface (IValueElement, IListElement, Ilist) implementieren.
Zu meiner Frage:
Ich habe ein Verständnisproblem damit wie die Klassen ValueElement und ListElement zusammen funktionieren / interagieren.
Im Interface IValueElement steht:
Java:
public interface IValueElement
{
public String getName();
public void setName(String paramName);
public int getValue();
public void setValue(int paramValue);
}
Java:
public class ValueElement
{
private String paramName;
private int paramValue;
// Es soll einen Konstruktor mit zwei Parametern geben, jeweils einen für den Namen und den Zahlenwert
public ValueElement(String paramName, int paramValue);
// ... aufgeschlüsselt die im Interface genannten Methoden....
}
Im Interface IListElement steht:
Java:
public interface IlistElement
{
public IValueElement getValueElement();
public void setValueElement(IValueElement value);
public IlistElement get Predecessor();
public void setPredecessor(IlistElement predecessor);
public IlistElement getSuccessor();
public void setSuccessor(IlistElement successor);
}
Bei der der Klasse ListElement setzen meine Fragen ein (siehe Kommentare).
Das grundlegende System der Listen habe ich verstanden, die Umsetzung in Java bereitet mir aber
die Verständnisprobleme.
Java:
public class ListElement
{
/** Zitat: IListElement spezifiziert eine einzelne Position der Liste, die jeweils auf ihren Vorgänger und auf ihren Nachfolger zeit sowie einen Wert (Objekt vom Typ IvalueElement) aufnehmen kann **/
private IValueElement value;
private ListElement predecessor, successor, element;
/** Es soll einen Konstruktor geben der den initialen Wert
des Elementes darstellt.
Frage:
Wenn ich nun aber ein Objekt
vom Typ "ListElement" erzeuge müsste ich an dieser Stelle doch auch die Position / Namen
des Elementes mitgeben? Welche Informationen trägt das Objekt ListElement mit der geforderten Umsetzung?
Nach meinem Verständnis erzeuge ich ein Objekt ListElement aus einem Objekt ValueElement, welches 2 Parameter beinhaltet,
ich übergebe an dieser Stelle aber nur einen?
Über die Methoden setSuccessor / setPredecessor gebe ich auch nur "Werte" und keine Positionen vor, wobei zweiteres mir sinnvoller erscheint?
**/
public ListElement(IValueElement value)
{
element = value;
}
// IValueElement
public IValueElement getValueElement()
{
return element;
}
public void setValueElement(IValueElement value)
{
element = value;
predecessor = null;
}
// Successor
public void setSuccessor(IListElement successor)
{
this.successor = successor;
}
public IListElement getSuccessor()
{
return this.successor;
}
// Predecessor
public void setPredecessor(IListElement predecessor)
{
this.predecessor = predecessor;
}
public IListElement getPredecessor()
{
return this.predecessor;
}
}
Zur Ergänzung: Im Interface IList steht:
Java:
public interface IList
{
public IListElement getHead();
public void insertAtTheEnd(IValueElement value);
public void insertAtPos(int pos, IValueElement value);
public IValueElement getElementAt(int position);
public int getFirstPisOf(IValueElement value);
public void deleteFIrstOf(IValueElement value);
public void deleteAllOf(IValueElement value);
public boolean member(IValueElement value);
public void reverse();
public String toString();
}
Wenn ihr mir weiterhelfen könntet wäre ich super glücklich =)