4 回答

TA贡献1831条经验 获得超9个赞
我可能会:
将ODD索引位置的所有元素抓取到一个单独的数组中并随机播放
将EVEN索引位置的所有元素抓取到一个单独的数组中并随机播放; 然后
将它们拼接在一起

TA贡献1836条经验 获得超4个赞
Collections.shuffle(Arrays.asList(array));
随着数组[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我得到输出[9, 5, 8, 2, 0, 7, 4, 3, 6, 1]
需要注意的是,它无法与原始数组一起使用,int[]
不会起作用Integer[]

TA贡献1719条经验 获得超6个赞
改变阵列的一种方法是“随机排序”项目。
例如,如果您使用的是Java 8或更高版本,则可以提供一个排序隔离区作为下面显示的lambda,它在排序操作期间在每次迭代时返回正或负索引以获得混洗结果:
ArrayList<Integer> list = new ArrayList<>();
Random random = new Random();
/* Ordered input list */
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
/* Apply random sorting behavior to achieve obtain a shuffled array */
Collections.sort(list, (Integer a, Integer b) -> {
/* Obtain random number between 0 - 1 */
Integer randomValue = random.nextInt(1);
/* Return random positive or negative value which causes "shuffled"
sort */
return randomValue == 1 ? 1 : -1;
});
/* list is now shuffled */
添加回答
举报