日期:2014-05-20 浏览次数:21084 次
boolean isDup(int []random,int ran){
for (int i = 0; i < random.length; i++) {
if(random[i]==ran) return true;
}
return false;
}
public int[] random(int start,int end,int len){
int [] rst=new int[len];
Arrays.fill(rst,start-1);
Random r=new Random();
for (int i = 0; i < rst.length; ) {
int ran=r.nextInt(end-start+1)+start;
if(!isDup(rst, ran)){
rst[i++]=ran;
}
}
return rst;
}
------解决方案--------------------
import java.util.*;
public class Test
{
public static void main(String[] args)
{
Set <Integer> mySet = new LinkedHashSet <Integer> ();
while(mySet.size() <7)
{
mySet.add((int)(Math.random()*40+1));
}
for(Integer i:mySet)
{
System.out.print(i+" ");
}
}
}
------解决方案--------------------
package com.test;
import java.util.*;
public class Test {
public Test() {
Random rd = new Random();
HashSet set = new HashSet();
while(true){
int i= rd.nextInt(7);
set.add(new Integer(i));
if(set.size()==3){
break;
}
}
System.out.println("=====================================");
Iterator iter = set.iterator();
while (iter.hasNext()) {
Integer item = (Integer) iter.next();
System.out.println(item);
}
System.out.println("=====================================");
}
public static void main(String[] args) {
//生成100次。都不重复
for (int i = 0; i < 100; i++) {
new Test();
}
}
}
------解决方案--------------------
先将0-6放到一个数组里。然后先随机取0-6中一个数i,然后用arr[i]取出该数。然后将最后的那位然后将arr[6]取出,放到arr[i]中,然后取0-5中的一个数i,依次类推。想随机取几个数都可以
------解决方案--------------------
把生成的对像放到SET里.