gpt4 book ai didi

java - 查找通用数组方法中最大元素,整数,字符串,字符

转载 作者:行者123 更新时间:2023-12-01 06:05:06 24 4
gpt4 key购买 nike

我有一个方法,可以很好地找到通用数组中的最小元素。然而,当我尝试相同的方法但略有不同时,每次运行它都会返回 0。我不知道为什么。

我希望解决此问题的方法看起来与下面的方法尽可能接近。我不想导入 Generic.max 或使用集合,我想以更原始的方式进行操作,如下所示。

如何使用与下面类似的方法来找到最大值?当我尝试将 < 0 更改为 > 0 时,它不起作用。我怎样才能使这个最小方法成为最大方法?

    public static <E extends Comparable<E> > int getSmallesElement(E[] list) {
int minIndex = 0;
// Iterate from i+1 ti i-1
for (int index = minIndex + 1; index <= list.length - 1; index++) {
minIndex = (list[index].compareTo(list[minIndex]) < 0 )? index : minIndex;
}// end for

return minIndex;
}// end getSmallest method

就像我说的,如果我可以使用像我的第一个方法那样的条件,那就太好了。我是泛型新手,我正在尝试让这些方法适用于整数、字符串和字符数组。

谢谢。

最佳答案

您将条件表达式重写为 if 语句,但您没有正确执行:您需要 maxIndex = index 而不是 index = maxIndex.

您可以仅在“true”分支中分配它,并删除“false”分支,而不是在 if 的两个分支中的每次迭代中分配 maxIndex总共:

for(int index = maxIndex + 1; index <= list.length -1; index++) {
if (list[maxIndex].compareTo(list[index] ) < 0) {
maxIndex = index;
}
}

关于java - 查找通用数组方法中最大元素,整数,字符串,字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46675201/

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