【java】求助怎么把一个数组元素随机打乱顺序,谢谢~~~

现有一个长度为10000的数组a, 怎么把a中的数组元素重新打乱顺序(随机打乱)?比如5长度的数组x = { 1, 2, 3, 4, 5} 打乱顺序后譬如变成 x = {2, 3, 5, 1, 4}? 效率要尽量高。谢谢~

晕.不用那么麻烦.

先转化为list(为什么不一开始就用List呢?)

例:

String[] arr = new String[] {"1", "2"};
List list = Arrays.asList(arr);

直接调用shuffle,就是随机排序

例:Collections.shuffle(list);

直接输出就是你想要的结果
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-12-30
晕.不用那么麻烦.

先转化为list(为什么不一开始就用List呢?)

例:

String[] arr = new String[] {"1", "2"};
List list = Arrays.asList(arr);

直接调用shuffle,就是随机排序

例:Collections.shuffle(list);

直接输出就是你想要的结果
第2个回答  2010-10-08
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Test {

public static void main(String [] args){
int [] x={1,2,3,4,5};
List list=new ArrayList();
for(int i=0;i<x.length;i++){
list.add(x[i]);
}
Random r=new Random();
for(int i=0;i<x.length;i++){
int j=r.nextInt(list.size());
x[i]=Integer.valueOf(list.get(j).toString());
list.remove(j);
}
for(int i=0;i<x.length;i++){
System.out.println(x[i]);
}
}
}
第3个回答  2010-10-08
随机生成10000个整数(可以是6位的), 以这些随机数为键值, 以原有数组的值存到一个新数组, 当然随机出来的键值需要判断重复, 然后按键值顺序输出新数组
我只能给个思路, 没用过Java, 说的不对的地方请见谅
第4个回答  2010-10-08
new一个长度为10000的键值对,数组a做健,值为随机数,用值排序输出.排序的时候重复的按原顺序,实际还是随机

【java】求助怎么把一个数组元素随机打乱顺序,谢谢~~~
直接调用shuffle,就是随机排序 例:Collections.shuffle(list);直接输出就是你想要的结果

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

Java打乱数组
void srand(int[] a){ int len=a.length;\/\/如果数组元素不足3,则没必要运算,特别是当数组只有一个元素时,会进入死循环 if(len<3){ return;} Random r=new Random();for(int i=0,n=0,temp=0;i<len;i ){ \/\/随机生成一个位置,两个位置的元素互换 do{ n=r.nextInt(len);}wh...

有数组a[n]用java代码将数组元素顺序颠倒
public static void main(String[] args) { \/\/String a[] = new String[12];String a[] = new String[11];\/\/ 赋值a[n]System.out.print("a[n]元素初始值依次为:");for (int i = 0; i < a.length; i++) { a[i] = String.valueOf(i);System.out.print(a[i] + " ")...

如何随机打乱一个有序序列?
const maxlength=10; {这里的数组中只有10个元素,更多的元素直接改这里的maxlength的值} change=20; {这里只交换20次,如果想要交换的更多,可以把change的值改成想要的次数} var i,j,k:longint;a:array[1..maxlength] of longint;{这里定义成longint是方便你处理更大的数据,下面过程同} proced...

如何将一个数组随机打乱
假定提问者会使用rand获取随机数。定义L为数组元素数量。循环L次,每次获得两个 0~L-1之间的随机数,交换这两个下标对应的值。

JAVA怎么打乱一串数字的顺序?不要重复的。新手。
数组去重有两个选择:一、编写判断语句 如果没有,添入数组,如果有,不添入数组。System.out.println("How many numbers? ");Scanner key = new Scanner(System.in);int n = key.nextInt();int[] all = new int[n];int allNum=0;boolean flag;for (int num = 0; num < n; num++)...

给一个有序的字符串怎么用java语言实现打乱顺序
取一个随机数,这个数就是你目标串的长度n 然后取n个随机数,取模到数组长度,然后合起来就完了...

java 如何用math.random打乱数组里的所有元素
public class Main {\/** * 比如这样的数组{"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A" * } * * 只用math.random不能导入别的包或者用list 不是实际打乱数组里面的元素顺序,是“打印”出全部13个元素,要求随机顺序, 不按照 * "2", ...

怎么把一串数字打乱顺序?
\/** 打乱一下int[] 的顺序 *\/ public static int[] randomArray(int[] src){ List<Integer> cache = new ArrayList<Integer>(src.length);for(int i:src){ cache.add(Integer.valueOf(i));} int[] re = new int[src.length];for(int i=0; i<src.length; i++){ re[i] = get...

相似回答