gpt4 book ai didi

java - 打印数组中最高的 2 个数字

转载 作者:行者123 更新时间:2023-11-30 02:02:46 26 4
gpt4 key购买 nike

所以我创建了一个名为 max2 的方法,该方法应该返回数组中的 2 个最高值。我能够返回最高值,但我不知道如何返回第二高值。

这是我的代码: 主要方法

    public static void main(String[] args) {
Integer intArray[] = { 13, 25, 46, 65, 12, 23};
Double doubleArray[] = {1.2, 3.4, 1.1, 0.1, 5.6};
String stringArray[] = {"H", "E", "L", "L", "O"};

System.out.println("The smallest number is: " + myMin(doubleArray));
System.out.println("The median is: " + median(doubleArray));
System.out.println("The median is: " + median(stringArray));
System.out.println("The max is: " + max2(intArray));
}

我的 max2 方法:

public static <E extends Comparable<E>> E max2(E... elements) {

Arrays.sort(elements);

E max = elements[0];
for (E element : elements) {
if (element.compareTo(max) > 0) {
max = element;

}
}
return max;

}

我想知道是否有办法获取数组的倒数第二个索引。理想情况下,我希望它适用于任何阵列。我希望有人指出正确的方向。感谢您的帮助。

最佳答案

您可以使用 Java 8 流来删除重复项并对数组进行排序,并使用 length-1length-2 从数组中获取最大和第二个最大元素

Integer intArray[] = { 13,13, 25, 46,25, 65, 12, 23};
Double doubleArray[] = {1.2, 3.4, 1.1, 0.1, 5.6};
String stringArray[] = {"H", "E", "L", "L", "O"};

Integer[] s= Arrays.stream(intArray).sorted().distinct().toArray(Integer[]::new);
System.out.println(Arrays.toString(s));
int max = s[s.length-1];
int max2 = s[s.length-2];

或者如果您只想对数组进行排序,那么您应该使用Arrays.sort对数组进行排序并获取最大和第二个最大元素

Arrays.sort(intArray) 
int max = s[s.length-1];
int max2 = s[s.length-2];

关于java - 打印数组中最高的 2 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52267218/

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