java 随机打乱数组

Python036

java 随机打乱数组,第1张

知道三种方法,方法一最简单.方法一:使用java自带工具的方法shuffle()。shuffle方法在java.util.Collections下,可以查下。例如代码:List list = Arrays.asList(arr) Collections.shuffle(list)方法二:数组下标index,取index+1到size-1的随机数为下标与以index为下标的数交换位置。对以上操作遍历一遍就可以了。方法三:用rand产生size个0到size-1的随机不重复的数。以上面产生的数为下标,重新得到新的数组。

// ShuffleTest.java

import java.util.*

public class ShuffleTest {

public static void main(String[] args) {

List<Integer>list = new ArrayList<Integer>()

for (int i = 0i <10i++)

list.add(new Integer(i))

System.out.println("打乱前:")

System.out.println(list)

for (int i = 0i <5i++) {

System.out.println("第" + i + "次打乱:")

Collections.shuffle(list)

System.out.println(list)

}

}

}

import java.util.Random

public class TestBaiduKnow 

{

static char[] letters={'a','b','c'}

static int n = letters.length

static Random random= new Random(13579)

public static void main(String[] args){

System.out.println("初始状态:")

for(int i = 0i<letters.lengthi++)

System.out.println(letters[i]+" ")

for(int i = 0i<Math.pow(n, 4)i++){

shuffle(letters)

}

System.out.println("\n"+"经过shuffle后:")

for(int i = 0i<letters.lengthi++)

System.out.println(letters[i]+" ")

}

private static void shuffle(char[] letters) {

int n1 = random.nextInt(n)

int n2 = random.nextInt(n)

char c

c=letters[n1]

letters[n1] = letters[n2]

letters[n2] = c

}

}