Java生成随机无重复随机数,使用ArrayList实现

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

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("");
			}
		}
	}
}