Mit Generics arbeiten - Übungsaufgabe

derEineTyp

Neues Mitglied
Hallo Leute,

bin neu hier, hoffentlich könnt ihr mir weiterhelfen. Wir haben folgende Übungsaufgabe erhalten:
(Möglichst kurz gefasst)

Ich soll eine doppelt verkettete Liste als generische Klasse und dann noch das Interface java.util.List<E> implementieren.

Mein Code:

Code:
public class GenerischeKlasse <E> imeplements java.util.List<E>{ ... }

Der Code kann doch gar nicht zur Aufgabe passen, da es ja keine verkettete Liste ist? Ich dachte wenn man eine verkettete Liste haben möchte, müsse man doch zwei Parameter innerhalb der <> tippen?

Vor allem, wenn ich dann die nötigen Methoden des Interfaces implementiere wie z.B.

Code:
public <T> T[] toArray(T[] a);

public boolean add(T e);

usw.

dann schimpft BlueJ und meint, dass T gar nicht existiert. (Wäre es denn korrekt, wenn ich einfach T mit E ersetze? Ich mein, rein theoretisch ist es doch egal was ich zwischen den Klammern schreibe solange ich permanent damit arbeite? (Jetzt mal von Paramter Naming Conventions abgesehen)

Irgendwie komme ich überhaupt mit Generics nicht klar, vielleicht kann mir jemand da weiterhelfen ...

Vielen Dank im Voraus.
 
Java:
public class GenerischeKlasse <E> imeplements java.util.List<E>{ ... }
Der Code kann doch gar nicht zur Aufgabe passen, da es ja keine verkettete Liste ist? Ich dachte wenn man eine verkettete Liste haben möchte, müsse man doch zwei Parameter innerhalb der <> tippen?
Hääh?! Was... zum... Ich meine... wieso glaubst du das?
Dass die Liste "verkettet" ist, ist nur ein Implementierungsdetail, wie die Klasse intern die Listenelemente hält.
Also z.B. als Array oder eben als verkettete Liste, bei der jedes interne Listenelement das nächste per Referenz kennt.
Du brauchst in jedem Fall nur einen einzigen Typparameter, der angibt, was für Sachen du denn in der Liste speichern kannst.
Unabhängig davon, wie denn die Liste genau die Sachen nun speichert.
 
Ich dachte wenn man eine verkettete Liste haben möchte, müsse man doch zwei Parameter innerhalb der <> tippen?

Es gibt Implementierungen, die 2 Parameter haben. Typisch hierfür sind Maps. Sie geben an welchen Typ der Key hat und welchen Typ der Value hat. Das heißt aber nicht, dass überall 2 benötigt werden 🙂
 
Hi.

public class GenerischeKlasse <E> imeplements java.util.List<E>

Das solltest du vielleicht auch korrigieren. Wobei die IDE dich drauf hinweisen sollte.

Grüße
 

Zurück
Oben