当前页面: 开发资料首页 → J2SE 专题 → 如何把一个有序的数组,转化成无序的数组.
如何把一个有序的数组,转化成无序的数组.
摘要: 如何把一个有序的数组,转化成无序的数组.
如何把一个有序的数组,转化成无序的数组.比如有一个数组,
private static int mNumber[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 };
怎么样把它转化成无序的。急呀,谢谢。
import java.util.Random;
public class ArrayA {
private static int mNumber[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 };
private static int newMemoryNumber[] = new int[18];
private static Random random = new Random();
public static void main(String[] args) {
for (int i = 0; i < mNumber.length; i++) {
// for (int j = 0; j < newMemoryNumber.length; j++) {
int m = mNumber[random.nextInt(mNumber.length)];
System.out.println("m:" + m + ":" + i + " Mal");
for (int j = 0; j < i; j++) {
if (newMemoryNumber[j] != m) {
newMemoryNumber[i] = m;
}
}
// System.out.println(newMemoryNumber[i]);
// }
// newMemoryNumber[i] = mNumber[random.nextInt(mNumber.length)];
System.out.println(newMemoryNumber[i]);
}
}
}
我无语,还有这样要求的
ArayList 和 Random 配合使用:
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class RandomizeArray {
/**
* @param args
*/
public static void main(String[] args) {
int[] sorted = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// 将数组内容放入 ArrayList
ArrayList sortedList = new ArrayList();
for (int i = 0; i < sorted.length; i++) {
sortedList.add(new Integer(sorted[i]));
}
// 使用随机数
Random rnd = new Random(System.currentTimeMillis());
ArrayList randomizedList = new ArrayList();
for (int i = 0; i < sorted.length; i++) {
// 随机从 sortedList 中抽取一个元素放入 randomizedList
int index = rnd.nextInt(sorted.length - i);
randomizedList.add(sortedList.get(index));
// 从 randomizedList 中去掉被抽取的元素,以免下次再被抽到
sortedList.remove(index);
}
System.out.println(randomizedList);
}
}
YidingHe(机枪兵) ( ) 信誉:100 Blog 的思路有点意思。
注释有一点点写错了:
// 从 randomizedList 中去掉被抽取的元素,以免下次再被抽到
应该是
// 从 sortedList 中去掉被抽取的元素,以免下次再被抽到