【发布时间】:2011-10-14 22:38:55
【问题描述】:
您好,我正在编写这个程序,我想弄清楚如何比较数组中的两个项目以找到最大的项目。
public static <T extends Comparable< ? super T>> T getLargest(T [] a, int low, int high){
if(low>high)
throw new IllegalArgumentException();
T[] arrCopy = (T[]) new Object[high-low]
for(int i=low;i<high;i++){
if(a[i]>a[i+1])
arrCopy[i]=a[i];
else
arrCopy[i]=a[i+1];
}
return arrCopy[0];
}
但后来我不知道如何测试它,我尝试了:
T[] a = {1,12,7,45,22,23,5};
System.out.println("Array: [1,12,7,45,22,23,5] low=0 high, Largest?: " + rec.getLargest(a, 0, 6));
但我收到一条错误消息
Rec类型中的getLargest(T[], int, int)方法不适用于参数(int[], int, int)
如何调用它以使其成为一个数字数组?字符串数组是否可以与我获得最大的代码一起使用?
也许只是简单的答案,但我已经在整个程序上工作了一段时间,现在事情看起来并不那么清楚。
编辑
将数组从 int[] 更改为 Integer[] 之后。我在这条线上遇到错误if(a[i]>a[i+1])
说
对于参数类型 T、T,运算符 > 未定义
我假设我必须更改 > 符号来比较数组中的元素,但我该怎么做呢?使用 compareTo() 吗?
【问题讨论】: