JAVA数组随机问题

我想请问一下高手:

假如我定义了一个数组长度10 里面的数字赋值为0到9

然后我想写一个shuffle() 方法, 把赋值的0到9打乱输出

胡乱写了一个方法,不知是否合意.

import java.util.Arrays;
import java.util.Random;

public class RandomArray {
// 用于打乱数组顺序
public static int[] shuffle(int[] intArray) {
Random ran = new Random();
int num;
for (int i = 0; i < intArray.length; i++) {
for (int j = 0; j < intArray.length; j++) {
num = ran.nextInt(intArray.length);
swap(intArray, j, num);
}
}
return intArray;
}

// 用于交换intArray中下标分别为index1和index2的值
public static void swap(int[] intArray, int index1, int index2) {
int temp = 0;
temp = intArray[index1];
intArray[index1] = intArray[index2];
intArray[index2] = temp;
}

public static void main(String[] args) {
int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] b = shuffle(a);
System.err.println(Arrays.toString(b));
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-03
用随机取下标方法比较简单。
for(int i=0;i<temp.length;i++)
{
int info=(int)(Math.random()*10);
System.out.println(info);
}
第2个回答  2009-09-03
别用数组了,用Set吧。

public static void main(String[] args) {
Set<Integer> set = new HashSet<Integer>();
for(int i=0; i<=9; i++){
set.add(i);
}

Iterator<Integer> iterator = set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
第3个回答  2009-09-03
你可以先把数组封装成为一个集合List,然后用Collections的shuffle(List<?> list) 方法将顺序打乱,再将List用toArray()转为数组,不过就是有点麻烦
相似回答