2016-03-31 14 views
0

Was ist der Hauptunterschied zwischen einer Generika T und E. Ich habe eine Methode, die eine Variable vom Typ T zurückgeben, und ich habe eine andere Methode, die eine ArrayList erstellt. Meine andere Frage ist: Ist es sicher, die Variable einfach auf (E) zu setzen, wenn Sie das Element zur ArrayList hinzufügen?Unterschied zwischen <T> und <E>

// Gibt eine Arraylist alle Elemente in dem Baum in Vorbestellung Traversal enthalten

public ArrayList<E> getPreorderTraversal() 

}

Diese in der Knotenklasse zu finden ist

public T getData(); 
+1

Ohne Kontext ist dies unmöglich mit Sicherheit zu beantworten. T und E repräsentieren nur einen Typ; jeden Typ, wenn ihnen keine Grenzen zugeordnet sind. Es ist mehr als wahrscheinlich unsicher. – Carcigenicate

Antwort

2

Im Allgemeinen gibt es keinen Unterschied zwischen dem T und E- benutzen sie nur verschiedene Namen für den Typparameter (E oder T).

Die am häufigsten verwendeten Typ Parameternamen sind:

E - Element (used extensively by the Java Collections Framework) 
K - Key 
N - Number 
T - Type 
V - Value 

Nun, es würde Variablen E zu werfen, ohne zu wissen ganzen Zusammenhang nicht empfehlen.

Ich gehe davon aus, wenn Sie BST Code zu schreiben, Sie Lösung wie

public E getData(); 

oder

sein sollte
public ArrayList<T> getPreorderTraversal() 

so Knotenliste ist entweder Typ T oder E. nicht Liste der Typ T enthalten und zurück E umgekehrt.

+0

Es sollte angemerkt werden, dass die oben genannten Konventionen nicht darauf angewiesen sind, zu wissen, ob Sie sie umsetzen sollten oder nicht. Wenn du nicht sicher weißt, welcher Typ etwas ist, solltest du es nicht aussprechen. – Carcigenicate

+0

Oh, ich verstehe !, Nun, ich versuche einen binären Suchbaum zu erstellen, also habe ich eine Knoten-Klasse, die eine Methode hat, die die Daten innerhalb dieses Knotens zurückgibt. Aber ich habe Probleme mit einer Methode, die eine ArrayList im Pre-Order-Traversal erstellt, ohne irgendwelche Parameter zu nehmen. –

+0

wäre es einfacher zu helfen, wenn Sie Code teilen können. –

Verwandte Themen