gpt4 book ai didi

java - 是否可以在不使用 .doubleValue() 的情况下重写以下代码?

转载 作者:行者123 更新时间:2023-11-29 07:38:15 26 4
gpt4 key购买 nike

所以我正在尝试编写一个使用泛型的方法。该方法假设采用 arrayList 并返回数组中的最大值。这是执行此操作的代码

 public T largest() {
T value = myList.get(0);
for (int i = 1; i < myList.size(); i++) {
if (myList.get(i).doubleValue() > value.doubleValue()) {
value = myList.get(i);
}
}
return value;
}

唯一的问题是我不应该使用 .doubleValue。几个小时以来,我一直在试图弄清楚它,但没有运气,出于某种原因,泛型真的让我失望了。我应该以某种方式施放一些东西吗?如何在不使用 .doubleValue() 的情况下编写上述方法?谢谢!

最佳答案

我想这就是他们给你这个任务时的想法。
列表中的元素必须是Comparable
这样你就可以简单地通过调用 compareTo 来比较它们。
这个实现更通用,更通用。
也就是说,您不需要特别限制自己使用 doubleValue

package test;

import java.util.Arrays;
import java.util.List;

public class Test001 {

public static void main(String[] args) {
Long a = largest(Arrays.asList(new Long[]{2L, 5L, 7L}));
Integer b = largest(Arrays.asList(new Integer[]{2, 5, 7}));
System.out.println(a);
System.out.println(b);
}

public static <T extends Comparable<? super T>> T largest(List<T> myList) {
T value = myList.get(0);
for (int i = 1; i < myList.size(); i++) {
if (myList.get(i).compareTo(value) > 0) {
value = myList.get(i);
}
}
return value;
}

}

关于java - 是否可以在不使用 .doubleValue() 的情况下重写以下代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33059214/

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