java22选5,随机数有答案,需要解释。
这是程序 Random r=new Random();//什么意思啊
while(set.size()<5){//set.size什么意思啊
set.add(r.nextInt(22)+1);//这行知道
}
System.out,println(set)//输出怎么就是set啊
我是初学者,想问一下,它的每行都是什么意思,希望大家说的细一下。
补充:set.add(r.nextInt(22)+1);这样我也不知道 本以为知道,但解释不出来,说明还是不会,求解释。十分感谢。但过程前2个人说的,我还是很迷糊,求在解释。
追问:我把整个过程重写一下publlic classTestHashSet{//这行不用
public static void main(String []args){//这样不用
HashSet s=new HashSet();//这行是产生不重复的随机数?
Random r=Random();//它与上一行什么区别啊?Random是一个类,r是对象,那他着句话,是干嘛用的?
while(s.size()<5){//当s里面元素少于5个的时候,就执行,
s.add(r.nextInt(22)+1);//他调用set对象的add方法,这add方法,就是给set这个集合或者说容器中添加数据
}
System.out.println(s);
希望您有时间在解释一下,解释时在每一行后用//之后解释,我自己看着您上面给我的解释,自己写了一下,您看哪有需要改一下,帮我改一下。十分感谢
答案:set应该是一个集合,HashSet吧,呵呵,也就是说,这个set就是一个容器,初始值为空,也就是他的大小size为0,他里面可以放东西。这个set中不允许有重复元素出现,也就是说,当你有两个相同数字都要添加到集合中区的时候,只能放进去一个。Random是一个类,Random r=new Random();是产生一个Random类的对象,r是一个引用,里面保存的就是你new Random()的对象的地址。r是在栈中开辟的空间,new Random()是在堆中开辟空间。 while(){}是一个循环,()里面是boolean型的值。while(set.size()<5){}就是说,当set里面元素少于5个的时候,就执行,当等于5的时候,因为5等于不,不是小于5,所以,就会停止循环。size()是set对象的一个方法,返回的是set中元素的个数,也就是这个set容器当前的大小。
另外说一下,22选5的话,size()<=5才可以,因为这里计算的是个数,而不是数组下标
set.add(r.nextInt(22)+1);
这行代码很简单,他调用set对象的add方法,这add方法,就是给set这个集合或者说容器中添加数据,
而你的数字必须在1-22之间,并且包含1和22,那么,直接调用了r这个对象的nextInt方法,这个方法是返回一个随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。也就是说当你给nextInt函数传递22的时候,永远不会产生22,而是产生一个小于22而且大于等于0的整数。数字产生之后,为了让他能够包含22而又不包含0,那么,只能给他加1了,呵呵。然后再放到set集合中,如果产生的数字在集合中已经存在,那么就不会吧当前产生的数字加进去,而是继续循环下去...直到有5个不相同的数字被保存在集合中
哈哈,没学过java的来解释一下,楼下的看我猜得对不对啊!
//定义一个对象r,类型为Random,并通过new关键字将对象r实例化。
Random r=new Random();
//set可能是一个数组或列表(对象)——这个需要看它的声明才能确定
//下面这个循环的意思是,当set对象里面存有数字的数量小于5的时候,
//在set对象里面添加一个数字,这个数字是由先前声明的r对象产生的
//r.nextint(22)的作用应该是随机产生一个数字,这个数字的取值范围
//在0-21之间(注意到后面的+1没)
while(set.size()<5){//set.size什么意思啊
set.add(r.nextInt(22)+1);//这行知道
}
//通过上面的循环再set对象里面存了5个数字,然后通过下面的系统
//调用把随机产生的5个数字显示出来。
System.out,println(set)
//哥是猜的。
上一个:哪位专业认识给分析 .net跟java 的优缺点?
下一个:Java中float类型自动转double类型会有误差