<t>和<e>之间的区别

时间:2016-03-31 03:14:20

标签: java generics arraylist

泛型T和E之间的主要区别是什么?我有一个返回类型为T的变量的方法,我有另一个创建ArrayList的方法。我的另一个问题是:在将元素添加到ArrayList时将变量转换为(E)是否安全?

//以预先顺序遍历

返回包含树中所有元素的Arraylist
    public ArrayList<E> getPreorderTraversal() 

}

这可以在Node Class

中找到
public T getData();

1 个答案:

答案 0 :(得分:2)

一般来说,T和E之间没有区别 - 他们只是为类型参数(E或T)使用不同的名称。

最常用的类型参数名称是:

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

嗯,不建议在不知道整个上下文的情况下将变量强制转换为E.

我假设你编写BST代码,你的解决方案应该是

public E getData();

public ArrayList<T> getPreorderTraversal()

因此节点列表是类型T或E.它不能包含类型T的列表并返回E反之亦然。