堆栈整数数组推送操作

时间:2015-08-03 20:20:21

标签: java

我已经声明了一个整数数组的堆栈 -

Stack<int[]> stack = new Stack<int[]>();

当我使用以下代码将对象推送到堆栈时,我收到错误 -

stack.push({0,0});

但是当我使用以下代码时它会起作用 -

stack.push(new int[]{0,0});

所以我有点困惑为什么第一种方法不起作用。 {0,0}是否未声明可以在堆栈上推送的新数组对象?

2 个答案:

答案 0 :(得分:2)

仅使用大括号{0,0}本身并不创建和初始化新数组。您可能会对以下语法感到困惑,这使得它看起来像是可能的。

int[] someArray = {0, 0};

这种语法只允许括号,而不是它之前的new int[],只有它是声明的一部分。你没有声明,所以它的语法无效。如果没有声明,则new int[]部分是必需的。

答案 1 :(得分:1)

试试这个:

stack.push(new int[] {0,0});

,或者

int[] array = {0, 0} // creates a new array
stack.push(array);

因为,只有{0, 0}不会创建任何数组,这就是导致错误的原因。 Read more.