我大约 2 周前才开始编程,所以请不要太严格:)
我试图解决一个编程练习来打印数组的 3 个最大元素,但是 .sort 方法
报告错误,我不知道为什么。似乎我以错误的方式声明了我的数组,但我无法发现错误。
public static void main(String[] args) {
int [] elements = {1, 4, 17, 7, 25, 3, 100};
int k = 3;
System.out.println("Original Array: ");
System.out.println(Arrays.toString(elements));
System.out.println(k +" largest elements of the said array are:");
Arrays.sort(elements, Collections.reverseOrder());
for (int i = 0; i < k; i++)
System.out.print(elements[i] + " ");
}
Run Code Online (Sandbox Code Playgroud)
}
因为整数是未装箱的并且不是对象。它们需要装箱,即整数。
未装箱
int [] elements = {1, 4, 17, 7, 25, 3, 100};
Run Code Online (Sandbox Code Playgroud)
盒装
Integer [] elements = {1, 4, 17, 7, 25, 3, 100};
Run Code Online (Sandbox Code Playgroud)
int[] elements = { 1, 4, 17, 7, 25, 3, 100 };
int[] sortedUnboxed = IntStream.of(elements)
.boxed()
.sorted(Comparator.reverseOrder())
.mapToInt(value -> value)
.toArray();
Integer[] sortedBoxed = IntStream.of(elements)
.boxed()
.sorted(Comparator.reverseOrder())
.toArray(Integer[]::new);
Run Code Online (Sandbox Code Playgroud)