Здравствуйте, я пишу эту программу и пытаюсь понять, как сравнить два элемента в массиве, чтобы найти самый большой элемент.
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));
но я получаю сообщение об ошибке
Метод getLargest (T [], int, int) в типе Rec не применим для аргументов (int [], int, int)
Как я могу назвать это, чтобы сделать его массивом чисел? Будет ли массив строк работать с кодом, который у меня есть для получения наибольшего?
Возможно, это просто простые ответы, но я некоторое время работал над всей программой, и сейчас все выглядит не так ясно.
EDIT
После изменения массива с int [] на Integer []. Я получаю сообщение об ошибке if(a[i]>a[i+1])
, говорящее
Оператор> не определен для типа (ов) аргумента T, T
Я предполагаю, что мне придется изменить знак >
, чтобы сравнить элементы в массиве, но как мне это сделать? Используйте CompareTo ()?