Java随机化并从函数返回一个数组

时间:2018-06-17 19:54:52

标签: java arrays

我有这个功能。

public static int[] createArray(){
    int[] array = new int[5];
    array = {5, 6, 8, 10, 0};
    Collections.shuffle(Arrays.asList(array));
    return array;
}

似乎我不能直接通过集合随机化数组。如何正确随机化并返回数组?

2 个答案:

答案 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();
}