有时为避免递归函数编写的逻辑麻烦,我们可能会需要用到栈。例如在Dijkstra算法寻找最短路径时,我们需要寻找每一个节点的所有前驱节点,这是还会用到栈的数组。
java初学者可能会遇到下列问题:
结果在编译运行时会抛出下列异常:
点开图一中的“!”处,可以看到下列提醒:
Stack is a raw type. References to generic type Stack<E> should be parameterized
但是在根据提示进行如下修改时,发现语法都通不过(T_T)
其实真正的原因并不是出自于这,而是建立Stack数组时需要为每一个Stack元素初始化一个对象。
解决方案:
(注:第10行的(int)可以去掉)