# Java eigene Liste implementieren



## schlelia (8. Jan 2022)

Hallo liebe Community,
ich habe ein Problem bei folgender Aufgabe:

Meine Ideen bisher sind das hier:

```
import java.util.Comparator;

public class FlexibleList<T>{
    private final T datafield;
    private T next;
    private final Comparator C;
    private FlexibleList(T datafield, T next, Comparator C) {
        this.datafield = datafield;
        this.next = next;
        this.C = C;
    }
    public static <T> FlexibleList<T> createInstance(Comparator c) {
        return new FlexibleList<>()
    }
    public static <T> FlexibleList<T> createInstance() {
    }
}
```
Ich verstehe nicht ganz wie ich das machen soll, vor allem wenn das Wächterelement hinten ist. Ist mein Konstruktor und die Attribute richtig? Denn da zeigt mir mekine IDE auch noch Warnungen, also z.B.
Private field 'next' is assigned but never accessed oder Raw use of parameterized class 'Comparator'.
Ich danke für jede Hilfe


----------



## temi (8. Jan 2022)

Du verwendest den Parameter Comparator c nicht und da die Instanzvariable final ist, muss sie im Konstruktor zugewiesen werden. Du musst also in deinen statischen Methoden den Konstruktor mit seinen Parametern aufrufen.

Variablennamen sollten in Java immer mit einem Kleinbuchstaben beginnen und aussagekräftig sein, z. B.: "C" => "comparator"


----------



## temi (8. Jan 2022)

Ach so, und das "raw use of parameterized class Comparator" liegt daran das du den Rohtyp Comparator verwendest. Das entspricht einem Comparator<Object>. Besser wäre es du nutzt den generischen Typen.


----------



## schlelia (8. Jan 2022)

temi hat gesagt.:


> Du verwendest den Parameter Comparator c nicht und da die Instanzvariable final ist, muss sie im Konstruktor zugewiesen werden. Du musst also in deinen statischen Methoden den Konstruktor mit seinen Parametern aufrufen.
> 
> Variablennamen sollten in Java immer mit einem Kleinbuchstaben beginnen und aussagekräftig sein, z. B.: "C" => "comparator"
> 
> ...


So müsste der Konstruktur sein. Jetzt kommt immer noch die Warnung "Private field 'next' is assigned but never accessed".


----------



## temi (8. Jan 2022)

schlelia hat gesagt.:


> So müsste der Konstruktur sein. Jetzt kommt immer noch die Warnung "Private field 'next' is assigned but never accessed".


Die sollte weggehen, sobald du in einer weiteren Methode auf die Variable zugreifst.


----------



## schlelia (8. Jan 2022)

temi hat gesagt.:


> Die sollte weggehen, sobald du in einer weiteren Methode auf die Variable zugreifst.


Mit dem Wächter am Ende verstehe ich das noch nicht so ganz. Bedeutet das einfach, dass die Elemente hinter dem Wächter eingefügt werden, anstatt davor?


----------

