JAVA 数组随机取值

int[] arr = {2, 3, 4};
int a, b, c;
我想把 数组中 随机取3个数 赋值给abc 其中 2是必须要有的随机赋给abc,然后 3 4 随机再赋给其他两个变量,3 4 可以重复
例如:
a=2 b=3 c=4
a=2 b=3 c=3
a=3 b=2 c=4
a=4 b=3 c=2

    public static void main(String[] args) {
        int[] arr = {2, 3, 4};
        int a, b, c;        
        Random rnd = new Random();
        int i = rnd.nextInt(arr.length);
        a = arr[i];
        i = rnd.nextInt(arr.length);
        b = arr[i];
        i = rnd.nextInt(arr.length);
        c = arr[i];        
        System.out.println("a = " + a + ", b = " + b + ", c = " + c);
    }

【以下回答由 GPT 生成】

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class RandomArraySelection {
    public static void main(String[] args) {
        int[] arr = {2, 3, 4};

        // 从数组中随机选择一个数作为变量a
        int a = arr[new Random().nextInt(arr.length)];

        // 生成一个包含剩余数字的列表
        List<Integer> remainingNumbers = new ArrayList<>();
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != a) {
                remainingNumbers.add(arr[i]);
            }
        }

        // 从列表中随机选择两个数作为变量b和c
        int b = remainingNumbers.get(new Random().nextInt(remainingNumbers.size()));
        int c = remainingNumbers.get(new Random().nextInt(remainingNumbers.size()));

        System.out.println("a=" + a + ", b=" + b + ", c=" + c);
    }
}

这段代码的运行结果将是类似以下的输出:

a=2, b=3, c=4

或者

a=2, b=4, c=3

或者

a=3, b=4, c=2

解决方案的步骤如下: 1. 从数组arr中随机选择一个数作为变量a,通过使用nextInt方法来生成一个随机的索引值,并将该索引对应的数赋值给a。 2. 创建一个空的列表remainingNumbers用于存储除了a以外的剩余数字。 3. 使用for循环遍历数组arr,如果数组中的数不等于a,则将它添加到remainingNumbers列表中。 4. 通过使用nextInt方法生成一个随机的索引值,从remainingNumbers列表中选择一个数作为变量b,并将其赋值给b。 5. 通过再次使用nextInt方法生成另一个随机的索引值,从remainingNumbers列表中选择一个数作为变量c,并将其赋值给c。 6. 打印输出结果,以展示a、b和c的值。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^