- import java.util.ArrayList;
- import java.util.Random;
- /**
- * 生成随机无重复随机数,使用ArrayList实现
- *
- * 算法:加入随机数时检测列表中是否已存在此随机数,有则重来,无则加入。
- *
- */
- public class Demo {
- public static void main(String[] args) {
- int length = 50; // 50个随机数
- Random random = new Random();
- ArrayList<Integer> list = new ArrayList<Integer>();
- for (int i = 0; i < length; i++) {
- int number = random.nextInt(100) + 1; // 1-100的随机数(此处100必须比length大,否则会死循环)
- if (!list.contains(number)) {
- list.add(number);
- } else {
- i--; // 保证生成的随机数个数足够,防止有重复随机数时造成空位
- }
- }
- for (int i = 0; i < length; i++) {
- System.out.print(list.get(i) + "\t");
- if ((i + 1) % 10 == 0) {
- System.out.println("");
- }
- }
- }
- }
来源: http://www.phpxs.com/code/1002413/