您的位置:首页 > 编程语言 > Java开发

JAVA随即生成不重复的数

2010-07-30 10:42 211 查看
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class UnSeqRandomNumber {
private int min;
private int max;
public UnSeqRandomNumber() {
this.min = 0;
this.max = 10;
}
public UnSeqRandomNumber(int min, int max) {
this();
if (max > min) {
this.min = min;
this.max = max;
} else
System.out.println("max比min小,按默认的值生成UnrepeatRandomMumber对象!");
}
// 第一种方法:排除法.随机生成数字,如果是新生成的数字则放到结果集中
// 否则不采取行动
public Integer[] getRandomA(int length) {
if (length <= 0) {
System.out.println("数字长度小");
return new Integer[0];
} else if (length > (this.max - this.min)) {
System.out.println("结果列表长度达不到要求:" + length + "结果只能是:"  + (this.max - this.min));
length = this.max - this.min;
}
Random rand = new Random();
List<Integer> list = new ArrayList<Integer>();
while (list.size() < length) {
Integer randnum = new Integer(this.min + rand.nextInt(this.max - this.min + 1));
if (!list.contains(randnum)) {
list.add(randnum);
}
}
return (Integer[]) list.toArray(new Integer[0]);
}
public static void outputArray(Integer[] array) {
if (array != null) {
for (int i = 0; i < array.length; i++) {
System.out.println(array[i] + " ");
}
}
System.out.println();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
UnSeqRandomNumber test = new UnSeqRandomNumber(5, 35);
outputArray(test.getRandomA(100));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: