日期:2014-05-20 浏览次数:20842 次
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里.