Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Mal ne Frage. Gibt es eine Möglichkeit an die einzelnen Elemente eine Vektors wieder heranzukommen, wenn dieser in einem Knoten bzw. Listenelement einer verketteten Liste abgespeichert ist? Stellt sich mir nämlich die Frage, ob dieser dann noch als Vektor in der Form exisistiert, wenn die Daten im Listenelement liegen oder ob das dann einfach nur noch ein String ist.
Ziel soll es sein, immer auf das erste Vektorelement beim Durchzuchen der Liste zu zugreifen. Geht das?
Also die Suche wird aus der Main Klasse per Funktion gestartet, soie das füllen der Vektoren. Die Funktion suchen() befindet sich wiederrum in der Klasse "Kette". Der Funktion gebe ich als Parameter einen String mit, welcher an Position 0 im Vektor steht. Beim durchlaufen der Kette enthält die Var. "aktuellerKnoten" jeweils die Informationen im aktuellen Element.
Könntest du es daran ma etwas deutlicher mit dem Syntax aufschreiben?.
Also die Suche wird aus der Main Klasse per Funktion gestartet, soie das füllen der Vektoren. Die Funktion suchen() befindet sich wiederrum in der Klasse "Kette". Der Funktion gebe ich als Parameter einen String mit, welcher an Position 0 im Vektor steht. Beim durchlaufen der Kette enthält die Var. "aktuellerKnoten" jeweils die Informationen im aktuellen Element.
Öhmmm....also mein Vektor sieht in etwa folgendermaßen aus
| String | Zahl | Zahl |
Diesen Vektor schreibe ich halt ganz normal in eine verkettete Liste. Und jetzt möchte ich halt erstma ne Funktion haben, die jetzt beim Durchsuchen der Liste immer auf das erste Element hin überprüft, ob der übergebene String mit dem String im Vektor an Pos. 0 (welcher sich ja dann im einem Konten der Liste befindet) übereinstimmt. Mehr soll es eigentlich erstma nich sein.
Auf die anderen möchte ich dann zu einem anderen Zeitpkt. ebenfalls zugreifen, nur wenn der Vektor als solches nich mehr besteht, wirds natürlich wieder mist.
Übers We habe ich leider auch keine richtige Lösung gefunden. Ich poste mal den Code ( auf's wichtigste beschränkt )
Code:
class Kette
{
public Knoten kopf = new Knoten("kopf");
public Kette()
{
kopf.vorgaenger = null;
kopf.naechster = null;
}
public void fuegeNach(Object neuObj)
{
Knoten aktuellerKnoten = kopf;
Knoten akt_vorgaenger = kopf.vorgaenger;
while (aktuellerKnoten != null)
{
akt_vorgaenger = aktuellerKnoten;
aktuellerKnoten = aktuellerKnoten.naechster;
}
Knoten neuKnoten = new Knoten(neuObj);
akt_vorgaenger.naechster = neuKnoten;
}
public void suchen(String value) // statt String eventuell "Object"
{
Knoten aktuellerKnoten = kopf;
while (aktuellerKnoten != null) // Durchsuche solange bis NULL (oder ||) Eintrag gefunden
{
aktuellerKnoten = aktuellerKnoten.naechster;
}
}
}
class Knoten
{
public Knoten naechster;
public Knoten vorgaenger;
public Object element;
public Knoten(Object obj)
{
element = obj;
naechster = null;
}
}
import java.util.Vector;
import java.io.*;
public class Kettentest
{
public static void main(String[] params)
{
String eing;
Kette liste = new Kette ();
Vector vek3 = new Vector();
vek3.addElement("Eintrag 3");
vek3.addElement(new Integer(5));
vek3.addElement(new Integer(6));
vek3.addElement(new Integer(7));
liste.fuegeNach(vek3);
BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
try {
while (true)
{
System.out.print("Eingabe: ");
eing = eingabe.readLine();
char auswahl = eing.charAt(0);
switch (auswahl)
{ case 'a': liste.ausgeben();
break;
case 'e': liste.suchen("Eintrag 3");
break;
case 'q': System.exit(0);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
So und jetzt möchte ich zum Bsp. den String "Eintrag 3", welcher ja an Pos. 0 im Vektor steht an die Funktion suchen() in der Klasse Liste übergeben und dieser soll nun beim Durchsuchen der Liste zurückgegeben werden oder eben nicht, wenn der Eintrag nicht existieren sollte. In der Variable "aktuellerKnoten.element" liegt immer der gesamte Vektor, aber meiner Meinung nach eben nur als String bzw. ist diese vom Typ Object, aber ich um z.B. an die Methode firstElement() ranzukommen, müsste es eben vom Typ Vector sein :?:
Da aber alle Klassen Unterklassen von Object sind, müsste es doch ne Möglichkeit geben, das zu ermöglichen. Die zweite Möglichkeit wäre dann wahrscheinlich nur, den String zuzerlegen, da alle Werte durch Komma getrennt sind, was aber sicherlich zu umständlich wäre.
ist zum einen Klasse, deren Operationen nicht synchronisiert sind,
deren Zugriff also schneller ist
(bei der man aber den Zugriff zwischen mehreren Threads gesondert behandeln muss)
hauptsächlich aber weil es einfach besser ins moderne Collections-System passt,
allein schon vom Klassenname: Interface List, andere Klassen heißen z.B. LinkedList..,
keine veralteten deprecated Operationen