A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编写一个程序,获取10个1至20的随机数,要求随机数不能重复?
重点是还不能重复,急!

25 个回复

倒序浏览
*思路:
*                1.定义一个集合,用于存储随机数
*                2.产生随机数,并存储进集合中。
*                3.对集合的长度进行判断。
*步骤:
*                1.由于随机数不能重复,所以使用Set集合。为了保证值的唯一,所以使用HashSet集合.
*                2.通过Set集合的add方法,将生成的随机数存储进HashSet集合。
*                3.通过Set集合的size方法对集合的长度进行判断,如果产生的随机数达到10个,那么将退出循环。
* */
public class Test {
        public static void main(String[] args) {
                //存储Integer的Set集合
                Set<Integer> set = new HashSet<Integer>();
                //判断集合的长度,如果符合了一定的长度,那么循环结束
                for(;set.size()<=9;){
                        //产生1~20之间的随机数
                        int i = new Random().nextInt(20)+1;
                        //添加进Set集合中
                        set.add(i);
                }
                //打印下集合的元素
                System.out.println(set);
        }
}

点评

牛,谢谢了,我发现一楼一般都是大神级人物  发表于 2015-8-24 20:24
回复 使用道具 举报 3 0
看着好简单的说
回复 使用道具 举报
1楼厉害
回复 使用道具 举报
这个题的思路在于一定要判断生成的随机书要遍历,以免出现相同的。
回复 使用道具 举报
这个给你吧!好好把这里面的题做做!

33道题.rar

57.63 KB, 下载次数: 135

点评

大神,谢谢拉  发表于 2015-8-24 20:25
回复 使用道具 举报
还没学到集合{:2_41:}
回复 使用道具 举报
路过看看
回复 使用道具 举报
Fozei 中级黑马 2015-8-24 20:51:38
9#
加油学习,互相鼓励,正在看视频,感谢发三十三道题的朋友,正愁看视频,不知道写些什么代码呢
回复 使用道具 举报
这思路,,,我也是醉了。霸气!!!
回复 使用道具 举报
这思路用了treeSet,厉害!
回复 使用道具 举报
这不就是彩票抽奖游戏算法吗?给你个思路,数组里放1-20这20个整数,生成随机数抽取下标,当然了,每次抽取后怎么把确保这个数不被再次抽到,需要一个小技巧。具体怎么操作,嘿嘿,参考《java核心技术》第一卷里的彩票算法
回复 使用道具 举报
会思想不会写呀
回复 使用道具 举报
那重点是什么啊,不管是点招还是社招,面试题都差不多,没有很难的啊,都是普通的题,别太着急了
回复 使用道具 举报
cemabenteng 发表于 2015-8-24 21:49
那重点是什么啊,不管是点招还是社招,面试题都差不多,没有很难的啊,都是普通的题,别太着急了 ...

点招是限时手写代码,比社招难好么?思路和注释都要写上,真的感觉差不多么?
回复 使用道具 举报
T-l-H、小生 发表于 2015-8-24 22:13
点招是限时手写代码,比社招难好么?思路和注释都要写上,真的感觉差不多么? ...

不管是社招还是点招,题都是平时的练习题难度,如果你觉得这题也难的话最好是再学学吧,就业班进度很快,
回复 使用道具 举报
T-l-H、小生 发表于 2015-8-24 22:13
点招是限时手写代码,比社招难好么?思路和注释都要写上,真的感觉差不多么? ...

我们班80个人,一次就过的就有五十个,最后没有过的只有几个人,你觉得这叫难吗?
回复 使用道具 举报
dingl 中级黑马 2015-8-25 22:25:06
18#
继续努力,学到集合就容易了
回复 使用道具 举报
本帖最后由 T-l-H、小生 于 2015-8-26 01:10 编辑
cemabenteng 发表于 2015-8-25 22:07
不管是社招还是点招,题都是平时的练习题难度,如果你觉得这题也难的话最好是再学学吧,就业班进度很快, ...

1:创建一个类Fraction,它有两个属性:分子和分母
2:在这个类中定义两个方法Fraction plus(Fraction r)和Fraction multiply(Fraction r)分别用来计算两个分数相加和相乘
3:定义一个测试类,传入一个分数分别调用方法计算出两个分数相加和相乘后的结果,要求对结果进行简化,比如2/8简化成1/4,3/9简化成1/3.就是求他们的最大公约数,小学四年级的知识。
----------------------------------
编写10个多线程,第一个线程从1加到10,第二个线程从11加到20。。。第十个线程从91加到100,最后把10个线程结果相加
----------
最后一道题就是去除集合中的“abc”字符串那道题了。就这个是平时连续碰到最多的。

我们点招碰到了这三题,就第一题就坑了不少时间,班里67个,第一次过了27个,包括我。
你觉得是我们基础不行还是我们运气差?碰到了这种题目?键盘敲都好说,我就说第一题,20分钟手写,那张纸都写不下好么?到了面试的时候,还要键盘敲两三道题。
反观社招的呢?尤其是先付费的,前面三个环节直接满分,第四个环节可以敲三天,百度都查完啦。不拿满分都对不起自己,然后最后视频面试,也是敲个两三道题。拿个40分,总分就有110分了,先付费110分进个就业班比抬炸弹还稳。。。。多的就不说了,自己手写一下那道题试试。很明显点招比社招多了个手写代码的环节,你还认为差不多的话。只能说我比你渣渣。。。。
回复 使用道具 举报
这里大神真多
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马