java arrayshuffle

Python010

java arrayshuffle,第1张

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

}

}

举个例子吧 a[6] 下标分别是 0 1 2 3 4 5

然后用romdom取出0~5中随机一个整数 比如是2

那就让a[0] 和 a[2] 调换数据。

第二次取1~5 比如是2

此时就让新的下标的a[1] 和 a[2] 调换

如此循环6-1次

就得到打乱的数组了

list的话也是同样一个道理

// 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)

}

}

}