我想得到一个不重复的4位数,写了下边的东西,结果运行后让我大吃一惊public class Random { public static void main(String[] args) {
System.out.println((int)(Math.random()*10));
Collection set = new HashSet();
for(int i =1 ; i<5 ; i++){
set.add((int)(Math.random()*10));
}
Iterator i = set.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
}
}
结果12
1
2
3
4
结果23
3
4
8
求解释!
System.out.println((int)(Math.random()*10));
Collection set = new HashSet();
for(int i =1 ; i<5 ; i++){
set.add((int)(Math.random()*10));
}
Iterator i = set.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
}
}
结果12
1
2
3
4
结果23
3
4
8
求解释!
解决方案 »
- JS中如何调用struts2 的Action 执行全选删除
- mysql to many connections
- Java EE启动Tomcat6后出现如下问题,怎样解决?
- 急求一个JFreechart 饼图扇区 散开的demo
- 继续问:sql2005数据库连接池问题
- 各位大虾,有没有传入查询结果参数可以直接图形化显示的java类库?
- 怎么调试JSP、servlet、JavaBean?
- 我得这段代码,很简单,但我就是调不出来,麻烦大家顺便看看,指点一二.
- @@@小弟我的問題還沒有解決.幫幫忙了.
- 怎么样有自己的代码思维?
- struts2 s:if判断时 空字符串与0的问题
- 请教 jfreechat和flex画图(报表,饼状图,柱状图)那个更好一些,欢迎大家讨论
list --其中的值允许重复,因为其为有序的数据结构
map--成对的数据结构,健值必须具有唯一性(键不能同,否则值替换)
public class Random { public static void main(String[] args) {// System.out.println((int)(Math.random()*10)); Collection set = new HashSet();
for(int i =1 ; i<5 ; i++){
int tmp=(int)(Math.random()*10);
set.add(tmp);
System.out.println("set add"+tmp);
} for(Object o:set){
System.out.println(o);
}// Iterator i = set.iterator();
//
// while(i.hasNext()){
// System.out.println(i.next());
// }
}
}
所以第一个和第二个总是重复
第一个数是你main开始就打印的一个数
后面的四个或三个数才是set里面的,没有重复啊
System.out.println((int)(Math.random()*10));
如果 set 中尚未存在指定的元素,则添加此元素,反之有则不添加了。所以才会出现不定数量值。
public static void main(String[] args) {
Collection set = new HashSet();
for(int i =1 ; i<5 ; ){
Integer a = new Integer(new Double((Math.random()*10)).intValue());
if(!set.contains(a)){
set.add(a);
i++;
}
}
Iterator i = set.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
}
System.out.println((int)(Math.random()*10));
Collection set = new HashSet();
while(set.size()<5){
set.add((int)(Math.random()*10));
}
Iterator i = set.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
}
}