A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一种不使用set集合或bool标志位或contains方法的无重算法实现【JAVA】版。。。
  1. package com.itheima.test;

  2. import java.util.LinkedList;
  3. import java.util.List;
  4. import java.util.Random;

  5. public class 不重复随机数 {

  6.         public static void main(String[] args) {
  7.                 List<Integer> list = doNotRepeat(10, 70, 15);
  8.                 for (Integer integer : list) {
  9.                         System.out.println(integer);
  10.                 }
  11.         }

  12.         public static List<Integer> doNotRepeat(Integer from, Integer to, Integer choose) {
  13.                 Integer listSize = to - from + 1;
  14.                 List<Integer> list = new LinkedList<Integer>();
  15.                 for (int i = from; i <= to; i++) {
  16.                         list.add(i);
  17.                 }
  18.                 Random random = new Random();
  19.                 for (int i = 0; i < choose; i++) {
  20.                         list.add(list.remove(random.nextInt(listSize - i)));
  21.                 }
  22.                 return list.subList(listSize - choose, listSize);
  23.         }
  24. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马