我正在复习我的数据结构技能。我在网上找到了一本很棒的免费书籍,名为Open Data Structures in Java。通读后,我尝试使用提供的代码创建所有声明的数据结构,以便将它们灌输到我的记忆中。
我遇到了一个“错误”,我一辈子都想不通:在(第 2.1.2 节)的resize()
方法中ArrayStack
,有一行代码 - T[] b = newArray(Math.max(n*2,1));
。这样做的重点是包含元素的数组既不会太小也不会太大。如果我使用这行代码,我会从 Eclipse 收到以下错误消息:
The method newArray(int) is undefined for the type ArrayStack<T>.
所以,我认为它一定是一个“错字”,意思是“新数组”。但是修复它会给我留下来自 Eclipse 的以下错误消息:
Type mismatch: cannot convert from Array to T[]
.
我不明白我错过了什么或做错了什么。所以总结一下我的问题,你如何声明和实例化一个新的通用数组,特别是在固定大小的情况下?