之前做音乐播放器的时候需要设计播放模式,其中的随机播放模式,虽然可以通过(int)(Math.random()*Max_Value)这种方法产生一个随机数,可是考虑到这是音乐播放器,在随机播放模式下,点击播放上一曲,得到的很有可能不是之前播放的那首音乐,而是新的一个随机数所指定的音乐,因此,我作了一些思考。大体上,能实现我的需求:
public class NRandom {
/**
* 对给定数目的自0开始步长为1的数字序列进行乱序
*
* @param no
* 给定数目
* @return 乱序后的数组
*/
public static int[] getSequence(int no) {
int[] sequence = new int[no];
for (int i = 0; i < no; i++) {
sequence[i] = i;
}
Random random = new Random();
for (int i = 0; i < no; i++) {
int p = random.nextInt(no);
int tmp = sequence[i];
sequence[i] = sequence[p];
sequence[p] =