我有这个功能。
public static int[] createArray(){
int[] array = new int[5];
array = {5, 6, 8, 10, 0};
Collections.shuffle(Arrays.asList(array));
return array;
}
似乎我不能直接通过集合随机化数组。如何正确随机化并返回数组?
答案 0 :(得分:1)
首先将数组收集到List
,然后将其洗牌并将元素作为int[]
返回。像,
public static int[] createArray() {
int[] array = { 5, 6, 8, 10, 0 };
List<Integer> al = IntStream.of(array).boxed().collect(Collectors.toList());
Collections.shuffle(al);
return al.stream().mapToInt(Integer::intValue).toArray();
}
答案 1 :(得分:1)
您需要在随机播放之前存储对列表的引用,并注意Arrays.asList(array)
将产生List<int[]>
,这不是您想要的。
这是一种方法:
static int[] createArray(){
int[] array = {5, 6, 8, 10, 0};
List<Integer> temp = Arrays.stream(array).boxed().collect(Collectors.toList());
Collections.shuffle(temp);
return temp.stream().mapToInt(Integer::intValue).toArray();
}