Eze*_*ler 0 java arrays random
我正在使用数组来完成这个项目。我有一个名为 createRandomIntArray 的方法来创建一个数组。此方法旨在按降序返回数组。我已经能够做到这一点,但我想知道是否有比我编写的方式更有效的方法来编写此方法。我的代码如下。
public static int[] createRandomIntArray(int n) {
Random random = new Random();
int[] result = new int[n];
for (int i = 0; i < n; i++) {
result[i] = random.nextInt(n);
}
Arrays.sort(result);
for (int i = 0; i < result.length / 2; i++) {
int temp = result[i];
result[i] = result[result.length - i - 1];
result[result.length - i - 1] = temp;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
您可以通过直接逆序排序来避免反转已排序的数组:
\nArrays.sort(result, Comparator.reverseOrder());\nRun Code Online (Sandbox Code Playgroud)\n正如评论中提到的,Random.ints(\xe2\x80\xa6)如果您\xe2\x80\x99不依赖于使用数组,则可以使用:
random.ints(n, 0, n).boxed().sorted(Comparator.reverseOrder()).mapToInt(i -> i).toArray();\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
672 次 |
| 最近记录: |