用UUID生成你所要的不更加方便吗? import java.util.UUID;public class UTest { public static void main(String[] args) { UUID uuid = UUID.randomUUID(); System.out.println(uuid); } }
public class TestRandom { public static void main(String[] args) { List<Integer> num = new ArrayList<Integer>(); while(num.size()<10) { Integer d = (int)(Math.random()*10+1); if(!num.contains(d)) { num.add(d); } } Iterator it = num.iterator(); while(it.hasNext()) { System.out.println(it.next()); } } } 产生是个随机数
public static void main(String[] args) { // TODO Auto-generated method stub Set s = new HashSet(); Random r = new Random(); int i=0; while (s.size() < 1000) { s.add(r.nextInt(1000)); i++; } System.out.println(i); System.out.println(s); }
public static void main(String aa[]){ Map s = new HashMap(); for(int i=0; i<50;i++){ // 产生一50个随机数! Random r = new Random(); int b = r.nextInt(100); // 伪随机数要比产生的数大,这个应该不难理解 s.put(b,b); // 关键在这里,因为 map的键 是唯一的,我用产生的数做键,得到的键值肯定就唯一了 } Set ss = s.keySet(); // 以下是通过 keySet()方法 在迭代得到 map的键值 既需要的随机数 Iterator it = ss.iterator(); while(it.hasNext()){ System.out.println(it.next()); } }就是不知道这样方法效率怎么样` 反正是能达到楼主的要求``
你这个产生的数字应该不是整数形式的吧 它是根据 IP MAC地址等 产生的 那么长, 只适合做数据库的主键! ````
或
Random r = new Random();
r.nextInt();
List<Double> nums = new ArrayList<Double>();
while (nums.size() < 3) { //生成3个
Double d = Math.random();
if (!nums.contains(d)) { //判断不重复
nums.add(d);
}
}for (Double d : nums) {
System.out.println(d);
}其实你完全可以认为连续生成的随机数不会有重复的...
http://http://topic.csdn.net/u/20080905/14/0985fd79-2f47-43f1-a871-1a465cf962de.html
* @param args *
*/
public static void main(String[] args) {
int n=3;//产生随机数的个数
int[] it=new int[n];
int i=0;//数组的下标变量
out:while(true){
it[i]=(int)(Math.round(Math.random()*10));//产生随机数
if(i>0){//从产生的第二个数开始执行判断
for(int k=0;k<i;k++){
if(it[i]==it[k]){//如果产生的和以前的数字重复
continue out;//那么就从新产生
}
}
i++;//直到新产生的数与以前的都不相同就让下标加一即产生下一个
}else{
i++;
}
if(i>=n){
break;//产生的数字已经够数就退出循环
}
}
for(int j=0;j<it.length;j++){
System.out.println(it[j]);//循环显示产生的随机数
} }}
import java.util.UUID;public class UTest {
public static void main(String[] args) {
UUID uuid = UUID.randomUUID();
System.out.println(uuid);
}
}
public static void main(String[] args) {
List<Integer> num = new ArrayList<Integer>();
while(num.size()<10) {
Integer d = (int)(Math.random()*10+1);
if(!num.contains(d)) {
num.add(d);
}
}
Iterator it = num.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
产生是个随机数
// TODO Auto-generated method stub
Set s = new HashSet();
Random r = new Random();
int i=0; while (s.size() < 1000) {
s.add(r.nextInt(1000));
i++;
}
System.out.println(i);
System.out.println(s); }
Map s = new HashMap();
for(int i=0; i<50;i++){ // 产生一50个随机数!
Random r = new Random();
int b = r.nextInt(100); // 伪随机数要比产生的数大,这个应该不难理解
s.put(b,b); // 关键在这里,因为 map的键 是唯一的,我用产生的数做键,得到的键值肯定就唯一了
}
Set ss = s.keySet(); // 以下是通过 keySet()方法 在迭代得到 map的键值 既需要的随机数
Iterator it = ss.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}就是不知道这样方法效率怎么样`
反正是能达到楼主的要求``
它是根据 IP MAC地址等 产生的
那么长, 只适合做数据库的主键!
````