有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从更大的数组生成随机数数组?

我需要从一个更大的int数组中生成一个随机数组,不需要重复,并且在一个数字范围内

例如 我有一个数组a[]和1-200 int,我需要的是所有200 int的随机数数组,但大小为15。我如何实现这一点


共 (2) 个答案

  1. # 1 楼答案

    Random rnd = new Random();
    
    int[] a = new int[200];
    for (int i = 0; i < a.length; i++)
        a[i] = i;
    
    int[] r = new int[15];
    for (int i = 0; i < r.length; i++) {
        int j = rnd.nextInt(a.length - i);
        r[i] = a[j];
        a[j] = a[a.length - i - 1];
    }
    

    应该这样做。随机从a抓取某物。一旦你抓取了它,用a的“最后”值替换它。“最后”值很容易从a.length和i中派生出来