如何从一个数组中随机地将元素推入堆栈?

时间:2016-02-03 17:13:25

标签: java arrays stack

char [] colors = {'R','G','B','Y','W'};

Scanner sc=new Scanner(System.in);
Stack stack=new Stack();

void push(){
        for(int i=0; i<15; ++i){

            stack.push();
        }

我有一系列颜色,我想将随机颜色推入堆叠到15个元素。如何推送和显示堆栈中的所有元素。

2 个答案:

答案 0 :(得分:1)

尝试使用以下内容:

char[] colors = {'R', 'G', 'B', 'Y', 'W'};

void push() {
    for (int i = 0; i < 15; ++i) {
        // define a random int to pick char from array index from 0 to colors.length -1
        int idx = new Random().nextInt(colors.length);
        // push the element into stack
        stack.push(colors[idx]);
    }
}

答案 1 :(得分:0)

定义Random对象时,最好先执行一次,然后重用该对象。 Random使用当前时间(以毫秒为单位)作为构造随机数的种子。在这样一个非常快速的循环中,毫秒可能不会发生很大变化(或者根本没有变化),因此你将随机地&#34;连续创建几个相同的数字。

以下是示例代码:

Stack stack=new Stack();
char[] colors={'R','G','B','Y','W'};
void push(){
    Random random = new Random();
    for(int i=0; i<15; ++i){
        int randomIndex = random.nextInt(colors.length);
        stack.push(colors[randomIndex]);
    }
}