黑马程序员技术交流社区

标题: 求大神解答,最后写上注释,菜鸟我是一只 [打印本页]

作者: q596333033    时间: 2017-3-8 17:35
标题: 求大神解答,最后写上注释,菜鸟我是一只
求打印10次1-20的随机数,不能有重复的数字出现!!!!面试考这,让3分钟写完(手写);
作者: lvshen9    时间: 2017-3-8 18:09
//3分钟足够了
[AppleScript] 纯文本查看 复制代码
package myexam;

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

/*
*
* 求打印10次1-20的随机数,不能有重复的数字出现
* 思路:存入set集合
*/
public class Test23 {

        public static void main(String[] args) {
                getArray(10);
        }
        public static void getArray(int len){
                Set<Integer> set=new HashSet<Integer>();
                Random r=new Random();
               
                while(true){
                        int num=r.nextInt(20-1)+1;
                        set.add(num);
                       
                        if(set.size()>len)
                                break;
                }
                for (Integer a : set) {
                        System.out.print(a+" ");
                }
        }


作者: weiwei110    时间: 2017-3-8 18:13
新来的不会啊

作者: 阮泰伟    时间: 2017-3-8 19:07
各位新老司机好,老司机带带我

作者: ccv5873    时间: 2017-3-13 11:41
lvshen9 发表于 2017-3-8 18:09
//3分钟足够了
[mw_shl_code=applescript,true]package myexam;

怎么有点奇怪的感觉
作者: DCS    时间: 2017-3-13 13:06
快捷键用多了也不好,还是得多敲……

作者: 明明凯凯归归    时间: 2017-3-13 13:31
提供一个思路:1到20放到一个list集合,0到集合长度-1中随机,打印该索引对应集合的值,然后remove。然后随机0到集和的length-1...这样循环十次,ok!考虑到效率
作者: 旧时光9527    时间: 2017-3-13 23:10
我去,你们都用集合,看我不用集合的
public class Demo4 {
        public static void main(String[] args) {
                printRandom2(20, 1);

        }
        private static void printRandom2(int max, int min) {
                for (int x = 0; x < 10; x++) {
                        int num = (int) ((Math.random()) * (max - min)) + min;
                        System.out.println(num);
                }
        }
}
作者: chen10041014    时间: 2017-3-14 14:36
旧时光9527 发表于 2017-3-13 23:10
我去,你们都用集合,看我不用集合的
public class Demo4 {
        public static void main(String[] args) {

题目要求是去重复,你这样没去重好吗
我觉得还是用Random类加Set集合最好理解也最好做 While(set.size() < 10) 就不断添加好了
作者: 旧时光9527    时间: 2017-3-18 00:11
chen10041014 发表于 2017-3-14 14:36
题目要求是去重复,你这样没去重好吗
我觉得还是用Random类加Set集合最好理解也最好做 While(set.size() < ...

你说得对,我还是太年轻了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2