Methoden Linked List Methoden können nicht aufgerufen werden

soja

Neues Mitglied
Guten Tag,

sitze jetzt schon fast eine Stunde an meinem Problem. Und zwar kann ich meine Methoden nicht aufrufen

Java:
public class LinkedList<T> {    @SuppressWarnings("hiding")
    private class ListElement<T> {
        private T value;
        private ListElement<T> next; // = null
        private ListElement<T> prev; // = null
        
        public ListElement(T value) {
            this.value = value;
        }
    }


    private ListElement<T> first; // =null
    private ListElement<T> last; // =null
    private int size; // =0


    // Default Konstruktor reicht aus.


    public void addFirst(T value) {
        ListElement<T> le = new ListElement<T>(value);


        if (size == 0) {
            first = le;
            last = le;
        } //liste nicht leer
        else {
            le.next = first;
            first.prev = le;
            first = le;
        }
        size++;
    }
    public void addLast(T value){
        ListElement<T> le = new ListElement<T>(value);
        
        if (size == 0){
            addFirst(value);
        }
        else{
            last.next = le;
            le.prev = last;
            last = le;    
        }
        size++;
    }
    public void add(int index, T value){
        ListElement<T> le = new ListElement<T>(value);
        assert index >= 0 && index < size;
        
        if(index == 0){
            addFirst(value);
        }
        else if(index == (size-1)){
            addLast(value);
        }
        else{
            ListElement<T> current = first;
            while (index > 0) {
                index--;
                current = current.next;
            }
            le.next = current.next;
            current.next.prev = le;
            current.next = le;
            le.prev = current;        
        }
        size++;
    }
    
    public void removeFirst(){
        assert size != 0;                    // leere liste
        if(size == 1){
            first = null;
            last = null;
        }else{
            first = first.next;
        }
        size--;
    }
    
    public void removeLast(){
        assert size != 0;                    // leere liste
        if (size == 1){
            first = null;
            last = null;
        }else{
            last.prev.next = null;
            last = last.prev;
        }
        size--;
        }
    
    public void remove(int index){
        assert index != 0;                    // leere liste
        if (index == 1){
            removeFirst();
        }else if(index == (size-1)){
            removeLast();
        }else{
            ListElement<T> current = first;
            while (index > 0) {
                index--;
                current = current.next;
            }
            current.prev.next = current.next;
            current.next.prev = current.prev;
        }
        size--;
    }
    


    public T get(int index) {
        assert index >= 0 && index < size;            //index 1 = 0. Element
        ListElement<T> current = first;
        while (index > 0) {
            index--;
            current = current.next;
        }
        return current.value;
    }
    public int getSize(){
        return size;
    }
}

So sieht meine Implementierung für eine Linked List aus. Leider kann ich sie nicht Testen, da ich z.B. LinkedList.addFirst(test) nicht aufrufen kann.

Lg Soja
 
da ich z.B. LinkedList.addFirst(test) nicht aufrufen kann.

Wenn du wirklich nur "LinkedList.addFirst(test)" schreibst, dann wundert es mich nicht das es nicht funktioniert.
So wird eine statische Methode aufgerufen, deine sind aber zum Glück nicht statisch.
Die Lösung: Erstelle zuerst ein Objekt deiner Klasse. Auf diesem Objekt kannst du dann die einzelnen Methoden aufrufen!
 

Zurück
Oben