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】进行互换
上一篇:如何创建线程池?
下一篇:dubbo支持多种协议:
相关文章
-
CMS与G1的区别?
1、CMS是老年代回收器,可以配合其它Serial和ParNew收集器一起使用。 2、G1是全局范围的,不需要配合其它垃圾器使用
NEW个对象 2025-01-09
-
什么是反射机制?为什么慢?
反射机制是指在运行时能获取到自身信息,只要给出类名,就可以访问类的属性和方法。
NEW个对象 2025-01-09
-
线程和进程的区别?
线程和进程的区别?
NEW个对象 2025-01-09