Wie kann ich ein Element an den Anfang setzten ?

Käsekuchen

Mitglied
Java:
public class Element {
    
    private String name;
    
    private Element next;
    
    public Element(String name, Element e) {
        this.name=name;
        this.next=e;
    }
    
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name=name;
    }
    public Element getNext() {
        return  next;
    }
    public void setNext(Element e) {
        this.next=e;
    }
}
Code:
public class Test{

public static void main (String[]args) {
    
    
    Element drei = new Element("Müller",new Element("Mustermann",new Element("Schneider",null)));
}
}
Ich weiß wie ich ein Element an einer beliebigen Stelle und an das Ende einfüge, aber ich weiß nicht, wie ich ein neues Element an den Anfang der Liste setzten kann.
Code:
    public void insertAt(int destinationIndex,Element toInsert) {
        int currentIndex = 1;
        Element current = this;                           
        System.out.println(current.getName());
        System.out.println(current.getNext().getName());   
        while(currentIndex<destinationIndex) {
            current = current.getNext();
                currentIndex++;
        }
        Element orginalNext = current.getNext();
        System.out.println(orginalNext.getName());
        current.setNext(toInsert);
        toInsert.setNext(orginalNext);
    }
Ich hab vorhin diese Methode geschrieben um an einer beliebigen stelle ein neues Element einzufügen, aber wenn ich 0 an destinationIndex übergebe und int currentIndex = 0 schreib, füge ich das Element zwischen 1-2 ein, das ist ja wahrscheinlich so, weil die Methode innerhalb der Klasse Element steht. Aber wie geht es denn dann ?
 
Wenn du eine verkettete Liste hast und ein neues Element an den Anfang setzen willst, dann musst du natuerlich das erste Element ersetzen welches du hast. Also angenommen wir haben deine Liste welche aus einer beliebigen Anzahl an Eintraegen besteht, dann hast du "nur" die Referenz auf das erste Element.

Java:
Element startElement = new Element(...);

doSomethingWithTheList(startElement);

Wenn du jetzt einen neuen Anfang haben willst, musst du natuerlich diese Referenze austauschen:

Java:
Element startElement = new Element(...);

startElement = new Element(..., startElement);

doSomethingWithTheList(startElement);
 

Zurück
Oben