比如要产生1~N之间的随机数,如何让这N个数中的每个数都只出现一次呢?
解决方案 »
- 求教java数据库操作问题——登录验证
- 一个枚举考试题的输出,大家 不要执行的情况下,能看出来的吗?
- java基础,帮看一下,有不明的地方
- OutputStreamWriter BufferedWriter PrintWriter 区别
- 做贪食蛇游戏出现的小问题`
- 关于java弹出对话框的问题
- 返回类型问题 请教,
- java里环境变量怎么设置
- java socket和winsocket 之间的乱码问题
- Java里面有没有象delphi中的TeeChart一样的现成的东东,可以同数据库表连接,生成饼、线、柱图?
- 一个简单的问题?
- java的开发环境是不是比.net的对硬盘配置低些呀?想学.net可是机器配置低,为些想学java,大家认为可以吗?
数组int a[]={1,2,3,4,5}
随机取一个 int i = a[Math.random()*a.length],假设为3
交换位置
{1,2,5,4,3}
取第二个
i = a[Math.random()*(a.length-1)]//取过的放到最后了,不可能取到了
明白了吧
Set set=new HashSet();
while(true){
int ra=(int)(Math.random()*10)+1;
set.add(new Integer(ra)); if(set.size()==10) break;
}
Iterator it=set.iterator();
while(it.hasNext()){
System.out.println(it.next().toString());
} }
不可能不重复的
可以按照上面的说法,
取一个则放一个到hashset里面,则可以消除重复的
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class Myrandom { public static void main(String[] args){
Set set=new HashSet();
while(true){
int i=(int)(Math.random()*10)+1;
set.add(new Integer(i));
if(set.size()==10){
break;
}
}
Object[] array=set.toArray();
Collections.shuffle(Arrays.asList(array));
for(int i=0;i<array.length;i++){
System.out.println((Integer)array[i]);
}
}
}
public class Myrandom { public static void main(String[] args){
Set set=new HashSet();
StringBuffer sb=new StringBuffer("");
while(true){
int i=(int)(Math.random()*10);
set.add(new Integer(i));
if(set.size()==10){
break;
}
}
Object[] array=set.toArray();
Collections.shuffle(Arrays.asList(array));
for(int i=0;i<array.length;i++){
//System.out.println((Integer)array[i]);
sb.append(array[i].toString());
}
System.out.println(new String(sb));
}
}
public void fun07(){
HashMap map = new HashMap();
int count=0,max = 10;
while(count<max){
int i = (int)(Math.random()*100+1);
Integer inte = new Integer(i);
if(map.containsKey(inte)){
continue;
}else{
count++;
Conica.pl("count "+count+":"+i);
}
}
}
输出1千个不重复的随机整数,要求整数大于零小于一万.
若按照hashset()方法的话,那岂不是要很麻烦!