您可以使用
stream()
和
mapToInt()
方法。
密码
import java.util.*;
public class StackToArray {
public static void main(String[] args) {
Stack<Integer> stack = generateRandomStack(10);
int[] array = stackToArray(stack);
for (int num : array) {
System.out.println(num);
}
}
public static Stack<Integer> generateRandomStack(int size) {
Stack<Integer> stack = new Stack<>();
Random rand = new Random();
for (int i = 0; i < size; i++) {
stack.push(rand.nextInt(100));
}
return stack;
}
public static int[] stackToArray(Stack<Integer> stack) {
int[] arr = stack.stream().mapToInt(Integer::intValue).toArray();
return arr;
}
}
打印
67 68 84 11 97 3 49 6 41 91
您也可以使用一个简单的迭代循环,我更喜欢它,它可能也会稍微高效一些:
import java.util.Stack;
import java.util.Random;
public class StackToArray {
public static void main(String[] args) {
Stack<Integer> stack = generateRandomStack(10);
int[] array = simpleStackToArray(stack);
for (int num : array) {
System.out.println(num);
}
}
public static Stack<Integer> generateRandomStack(int size) {
Stack<Integer> stack = new Stack<>();
Random rand = new Random();
for (int i = 0; i < size; i++) {
stack.push(rand.nextInt(100));
}
return stack;
}
public static int[] simpleStackToArray(Stack<Integer> stack) {
int size = stack.size();
int[] arr = new int[size];
for (int i = 0; i < size; i++) {
arr[i] = stack.pop();
}
return arr;
}
}
打印
23 13 29 12 42 95 20 8 64 21