以随机顺序打印数组

sco*_*ohh 3 java arrays

如何在java中以随机顺序打印数组?

例:

int [] myArray = {5,4,3,2,1};

打印时,结果可能是:

3 2 1 4 5

要么

4 3 2 5 1

Jon*_*eet 11

你应该看一下Fisher-Yates shuffle.这很容易做到,效率很高.实际上,您可以将数组逻辑分区为"混洗"部分和"未洗牌部分" - 然后从未洗涤部分中重复选取一个随机元素,并将其与未洗涤部分中的第一个元素交换,以构成洗牌部分的一部分.

或者,创建一个List<Integer>代替然后使用Collections.shuffle.遗憾的是,没有相应的数组,但Java的类型系统在使数组基元通用方面做得不是很好:(

(我假设你知道如何进行打印方面的操作,而且这对于你来说是一个非常棘手的方面.)