我需要实现一个方法,使用泛型提供三个数字时计算最大数量.我知道如何使用Comparable类来执行此操作,但我只需要使用数字.
这是代码.
public static <T extends Math> T compareThreeValue(T x, T y, T z){
T max=Math.max(Math.max(x, y), z);
return max;
}
Run Code Online (Sandbox Code Playgroud)
我添加了这段代码,以了解我在尝试什么.
小智 5
由于数字的所有原始包装器都扩展了数字并且它们实现了可比性
public static <T extends Number & Comparable<T>> T max(T x, T y, T z) {
return max(max(x, y), z);
}
public static <T extends Number & Comparable<T>> T max(T x, T y) {
if (x.compareTo(y) > 0) {
return x;
}
return y;
}
Run Code Online (Sandbox Code Playgroud)
你也可以使用
Collections.max(Arrays.asList(x,y,z))
Run Code Online (Sandbox Code Playgroud)
因为所有数字都是Comparable.但是,您将有创建新列表的性能开销.
| 归档时间: |
|
| 查看次数: |
673 次 |
| 最近记录: |