帮忙么网 > JAVA > 当前页面

java代码,随机打乱一个数组

2025-02-21 NEW个对象

import java.util.concurrent.ThreadLocalRandom;


public class ShuffleArray {

    public static void main(String[] args) {

        int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        shuffleArray(array);

        System.out.println(Arrays.toString(array));

    }


    public static void shuffleArray(int[] array) {

        for (int i = array.length - 1; i > 0; i--) {

            int j = ThreadLocalRandom.current().nextInt(i + 1);

            int temp = array[i];

            array[i] = array[j];

            array[j] = temp;

        }

    }

}


问题1:j不会越界吗?


next生成数在【0到i+1】之间。


问题2:代码的具体逻辑


生成一个【0到i+1】的之间的随机数,与【i】进行互换

相关文章

  • 如何创建线程池?

    1、通过ExecutorService,

    NEW个对象 2025-02-19

  • 面向对象三大特性 :封装、继承、多态

    面向对象三大特性 :

    NEW个对象 2025-01-10

  • cglib与jdk代理的区别

    JDK 动态代理: 只支持接口代理。它通过反射机制生成一个实现了指定接口的代理类。 代理对象只能调用接口中定义的方法。 CGLib 动态代理: 通过继承方式生成代理类。它可以代理没有实现接口的类。 代理对象可以调用类中的所有方法(除了final方法)。

    NEW个对象 2025-01-18

推荐文章