首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机数组

随机数组
EN

Stack Overflow用户
提问于 2020-05-22 20:15:41
回答 2查看 79关注 0票数 0

我正在制作应用程序,显示我在显示器上随机设置的数字。这是我的问题,因为我的代码看起来是这样的:

代码语言:javascript
复制
tv1 = (TextView) findViewById(R.id.textView);
btn1 = (Button) findViewById(R.id.button);

btn1.setOnClickListener(new View.OnClickListener() {
     @Override
            public void onClick(View v) {

                final java.util.Random rand = java.util.concurrent.ThreadLocalRandom.current();
                new java.util.Timer().scheduleAtFixedRate(new java.util.TimerTask() {
                    @Override
                    public void run() {
                        tv1.setText(rand.nextInt(6) + "-" + rand.nextInt(6) + "-" + rand.nextInt(6));
                    }

                }, 0, 3000);


            }
        });

    }
}

有没有可能应用程序会接受我创建的现成的数字集,而不是从6到0的数字?

EN

回答 2

Stack Overflow用户

发布于 2020-05-22 21:03:42

在您的活动类中实现下面给出的方法,您可以使用它来实现您的需求:

代码语言:javascript
复制
// To get the numbers from 0 to 6 use upperBound as 7.
private static String getResult(int lowerBound, int upperBound){
        final ThreadLocalRandom rand = ThreadLocalRandom.current();
        List<Integer> list = new ArrayList<Integer>();
        int number;

        for(int counter = 0; counter < 3;counter++){
            number = rand.nextInt(lowerBound, upperBound);
            while(list.contains(number)) {
                number = rand.nextInt(lowerBound, upperBound);
            }
            list.add(number);
        }
        Collections.sort(list); //Sorts the list
        return list.get(0) + "-" + list.get(1) + "-" + list.get(2);
    }

在您的TextView tv1 inside run()方法中;只需调用此方法,如下所示:

代码语言:javascript
复制
tv1.setText(getResult(0, 7)); // Remember in the sequence; 0 is inclusive and 7 is exclusive.

您可以看到运行的示例

票数 0
EN

Stack Overflow用户

发布于 2020-05-26 21:51:31

如果想从List中抽取随机数,可以使用rand.nextInt(list.size())获取随机索引,因为nextInt的上限参数是独占的。

代码语言:javascript
复制
final java.util.List<Integer> numbers = java.util.Arrays.asList(1, 4, 534, 94);
btn1.setOnClickListener(new View.OnClickListener() {
     @Override
            public void onClick(View v) {
                final java.util.Random rand = java.util.concurrent.ThreadLocalRandom.current();
                new java.util.Timer().scheduleAtFixedRate(new java.util.TimerTask() {
                    @Override
                    public void run() {
                        tv1.setText(numbers.get(rand.nextInt(numbers.size())) + "-" + numbers.get(rand.nextInt(numbers.size())) + "-" + numbers.get(rand.nextInt(numbers.size()));
                    }
                }, 0, 3000);
            }
        });
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61954842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档