Java – 新的Stack 相当于通用数据类型Stack 的新Stack ?

new Stack[N]等同于通用数据类型Stack new Stack[N]

编辑:虽然我明白混合generics类型和数组应该最好避免,并且存在更强大的解决方案,我的查询仍然存在:广泛认可的教科书,如由韦恩和罗伯特塞奇威克(第158页)的算法,第4版建议使用构造如下:

 Stack[] a = (Stack[]) new Stack[N]; 

是的,它们是等价的,除了返回类型(一个是Stack[] ,另一个是Stack[] )。

请注意, Stack[]可以在没有显式强制转换的情况下分配给Stack[] (您将只获得未经检查的转换警告),而将Stack[]分配给Stack[]是错误的。没有演员。

new Stack[N]使用原始类型,不建议在新代码中使用。

[将我的评论转化为真实答案]

1)应避免混合数组和generics类型。

2)相反,当需要处理多个“通用”对象时,可以使用Java Collection类型,例如ArrayList,例如

 ArrayList> theStacks = new ArrayList<>();