Как написать универсальный метод, чтобы найти максимальный элемент и вызвать этот метод?
Пока я пытался решить упражнениеиз учебника дженериков Q & A Мои ответы немного отличались
Мои ответы
public static
T max(List list, int begin, int end) //Option1
public static
T max(List list, int begin, int end) //Option2
из цитируемого ответа ниже
Итак, мой вопрос
Вариант 1: Будет ли это иметь значение, еслиT extends Object & Comparable
заменяется наT extends Comparable
, неextends Object
неявный?
Вариант 2: Будет ли это иметь значение, еслиComparable
заменяется наComparable
? если так как?
Завершение кода Eclipse создает локальную переменнуюList list;
по Ctrl + 1max(list, 1, 10);
который немного длинен. Как определить классы (иерархию), которые расширяютсяComparable
создать список и добавить экземпляры в список и вызвать метод ниже? В основном я хочу знать, как вызватьmax()
после добавления экземпляров классовA or B
в список, гдеclass B extends A
Напишите универсальный метод, чтобы найти максимальный элемент в диапазоне [начало, конец) списка.
Ответ:
import java.util.*;
public final class Algorithm {
public static
T max(List list, int begin, int end) {
T maxElem = list.get(begin);
for (++begin; begin < end; ++begin)
if (maxElem.compareTo(list.get(begin)) < 0)
maxElem = list.get(begin);
return maxElem;
}
}