/**
*
*/
package com.tjb.foundation.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
/**
* @author tjbworkshop
*
*/
public class RandomNumber {
/**
*
*/
public RandomNumber() {
super();
}
public static int getRandom(int max,int min)
{
boolean flag =false;
int rand = 0;
do
{
flag = false;
int beginrand = new Random().nextInt(65535);
rand = beginrand%(max-min+1)+min;
int a = rand/1000;
int b = (rand-a*1000)/100;
int c = (rand-a*1000-b*100)/10;
int d = rand-a*1000-b*100-c*10;
if((a==b)||(a==c)||(a==d)||(b==c)||(b==d)||(c==d))
flag = true;
}
while(flag);
return rand;
}
/**
* @param args
*/
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String number = null;
int max = 0;
int min = 0;
/*用户可以设置随机数的范围*/
try {
System.out.println("请输入随机数最大值:");
number = br.readLine();
max = Integer.parseInt(number);
System.out.println("您输入的最大数是:"+max);
System.out.println("请输入随机数最小值:");
number = br.readLine();
min = Integer.parseInt(number);
System.out.println("您输入的最小数是:"+min);
} catch (IOException e) {
e.printStackTrace();
}
Set s = new HashSet();
int in = 0;
Integer wrapperin = null;
for(int i =0 ;i<500;i++)
{
for(int j = 0;j<100000;j++) /*因为java random在25秒内,生成的随机数是重复的,这个循环是为生成新的不重复随机数*/
{
}
in = getRandom(max,min);
wrapperin = new Integer(in);
if(!s.contains(wrapperin)) /*将生成的不重复数放进set中*/
s.add(wrapperin);
}
Iterator it = s.iterator();
while(it.hasNext())
{
System.out.println((Integer)it.next());
}
}
}