java代码,随机打乱一个数组
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