如何将数组放入堆栈?我有一个带有一副卡片的卡阵列,然后我需要将它更改为堆栈并在顶部打印第一个数字。无论如何,任何人都可以提供帮助吗?
答案 0 :(得分:2)
您可以使用Collections.addAll
Card[] cardsArray;
Stack<Card> cards = new Stack<>();
Collections.addAll(cards, cardsArray);
答案 1 :(得分:0)
要将数组转换为堆栈,您需要先将其转换为列表,然后创建新堆栈并将列表中的所有元素添加到该堆栈。 在这里你可以看到参考答案。
String[] stuff = {"hello", "every", "one"};
List<String> list = Arrays.asList(stuff); //1 Convert to a List
//stack.addAll(list);
//3 Add all items from the List to the stack.
// This won't work instead of use the following
Stack<String> stack = new Stack<String>(); //2 Create new stack
// this will insert string element in reverse order, so "hello" will be on top of the stack, if you want order to be as it is, just loop i over 0 to stuff.length.
for(int i = stuff.length - 1; i >= 0; i--) {
stack.add(stuff[i]);
}
System.out.println(stack.pop());//print First Element of Stack
答案 2 :(得分:0)
没有单行命令可以将数组更改/转换为堆栈格式。你必须自己做。
您还没有发布一些代码,因此我们必须做出一些假设。
如果数组由卡片类型对象组成,那么您需要做的是:
Card[] deck; //your array
Stack<Card> deck_stack = new Stack<Card>(); //the newly created stack
//pass the array objects into the stack
for(int i=0; i<deck.length; i++) {
deck_stack.add(deck[i]);
}
//take out the first stack object
System.out.println("Top of the deck: "+deck_stack.pop());