public class PriceUtil { public static void main(String[] args) { // 传入ID ,1 1000 在1到1000ID的用户里随机筛选 10个用户获奖 Set<Integer> set = getRandoms(1, 1000, 10); System.out.println("数量:" + set.size()); for (Integer s : set) { System.out.println(s); } } /** * 生成一组不重复随机数 * * @param start 开始位置:可以为负数 * @param end 结束位置:end > start * @param count 数量 >= 0 * @return */ public static Set<Integer> getRandoms(int start, int end, int count) { // 参数有效性检查 if (start > end || count < 1) { count = 0; } // 结束值 与 开始值 的差小于 总数量 if ((end - start) < count) { count = (end - start) > 0 ? (end - start) : 0; } // 定义存放集合 Set<Integer> set = new HashSet<>(count); if (count > 0) { Random r = new Random(); // 一直生成足够数量后再停止 while (set.size() < count) { set.add(start + r.nextInt(end - start)); } } return set; } }