gpt4 book ai didi

java - 为什么 array.sort 不能通过这样的数组工作?

转载 作者:行者123 更新时间:2023-12-04 11:42:55 26 4
gpt4 key购买 nike

我大约 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] + " ");
}

}

最佳答案

因为整数是 unboxed并且不是对象。它们需要装箱,即整数。

未装箱

int [] elements = {1, 4, 17, 7, 25, 3, 100};

盒装

Integer [] elements = {1, 4, 17, 7, 25, 3, 100};

使用 Java 8 流

       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);

关于java - 为什么 array.sort 不能通过这样的数组工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60641546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com