数组转换为堆栈

时间:2018-03-22 05:37:38

标签: java arrays stack

如何将数组放入堆栈?我有一个带有一副卡片的卡阵列,然后我需要将它更改为堆栈并在顶部打印第一个数字。无论如何,任何人都可以提供帮助吗?

3 个答案:

答案 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());