将元素推入数组中的堆栈,多个堆栈将元素推入所有堆栈中

时间:2014-05-11 07:06:09

标签: java arrays stack

当我试图将元素(卡)推入堆栈时,

遇到了一个小问题。 我有一个包含4个堆栈的数组,代表4堆卡片。但是当我试图将卡片推入其中一个堆叠时,它会将所有卡片推入其中。我打赌那里只有一些愚蠢的错误,但是我的大脑并不是很活泼。

无论如何代码:

stacks = new CardStack[4];   //array with 4 slots


   // Creating 4 stacks and placing each in one slot in the array
for (int i =0; i<4; i++){    
        CardStack<Card> stack = new CardStack<Card>(i+1);
        stacks[i] = stack;
    }

如果我尝试

stacks[0].push(currentCard);
似乎是将卡推入所有堆栈,而不仅仅是堆栈数组中索引0处的堆栈。

1 个答案:

答案 0 :(得分:1)

看起来在List中有一个数组或CardStack字段来存储将作为堆栈结构运行的元素。确保此字段不是static,否则它将绑定到类,并且该类的所有实例将共享相同的数组List或任何对象。

更多信息: