import java.io.*;
import java.util.ArrayList;
import java.util.Random;
public class RandomNoRepeat
{
public int inputNum = 0;
private ArrayList getNum = null;
public int inputNum() throws IOException
{
String inputStr = null;
int Num = 0;
BufferedReader istream = new BufferedReader(new InputStreamReader(System.in));
inputStr = istream.readLine();
Num = Integer.valueOf(inputStr);
return Num;
}
public ArrayList genarateNum(int Num)
{
ArrayList storeNum = new ArrayList();
for(int i = 1; i <= Num; i++ )
{
storeNum.add(i);
}
return storeNum;
}
private void processData() throws IOException
{
int outNum = 0;
System.out.print("请输入您数字的区间的最大值:");
inputNum = inputNum();
getNum = genarateNum( inputNum );
for(int i = 1; i <= inputNum; i++)
{
outNum = Integer.valueOf( getNum.get(i-1).toString() );
//System.out.println(outNum);
}
System.out.print("请您输入需要随机数字的个数:");
int range = inputNum();
for (int j = 0; j < range; j++)
{
int randRange = inputNum - j;
Random ran = new Random(System.currentTimeMillis());
int randNum = ran.nextInt(randRange);
outNum = Integer.valueOf( getNum.get(randNum).toString() );
getNum.remove(randNum);
System.out.println(outNum);
}
}
public void ssq()
{
int outNum = 0;
ArrayList redNum = null;
ArrayList buleNum = null;
System.out.println("--这是一个模仿双色球的函数---");
//inputNum = inputNum();
redNum = genarateNum( 33 );
buleNum = genarateNum( 16 );
System.out.print("红色号码是: ");
for (int j = 0; j < 7; j++)
{
int randRange = 33 - j;
Random randomRed = new Random(System.currentTimeMillis());
int randRedNum = randomRed.nextInt(randRange);
outNum = Integer.valueOf( redNum.get(randRedNum).toString() );
redNum.remove(randRedNum);
System.out.print(outNum+ " ");
}
Random randomBlue = new Random(System.currentTimeMillis());
int randBlueNum = randomBlue.nextInt(16);
outNum = Integer.valueOf( buleNum.get(randBlueNum).toString() );
System.out.println("蓝色号码是: " + outNum);
}
public static void main(String str[]) throws IOException
{
System.out.println("----本程序的主要目的是随机生成某区间无重复的随机数----");
RandomNoRepeat localObj = new RandomNoRepeat();
//localObj.processData();
localObj.ssq();
}
}
主要是在运用arrayList的remove()和add()方法。