堆的第二节

来源:4-3 Shift Up

慕九州7716191

2018-10-20


http://img.mukewang.com/szimg/5bca8b4000018ba306720504.jpg
我想问一下再构造函数这里为什么这么写 不太理解

写回答

1回答

liuyubobobo

2018-10-20

由于Java语法的限制,是不可以直接实例化一个泛型数组的。可以试一下,这么写会报错:

array = new T[count + 1] //会报错:)


在Java语言中,如果想实例化一个泛型数组的空间,只能先实例化一个Object类型的数组(即Object[]),之后,将这个Object[]强制类型转换成泛型数组T[],就是课程中提供的Java代码的写法:)


加油!:)

0
2
liuyubobobo
回复
慕九州7716191
count不是指数组的长度,是指当前堆中一共有多少个元素。capacity才是数组的长度,表示创建的这个堆的实例,最多可以盛放多少元素。由于静态数组在创建时就需要确定容量,所以需要capacity。但是count的初始值为0:)
2018-10-20
共2条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11211 学习 · 1617 问题

查看课程