Я написал половину, но не могу сделать это на 100% правильно.Может ли кто-нибудь помочь мне с этим?
Вот моя проблема:
Напишите параметризованный класс Triple, который представляет трио некоторого типа (например, тройка из строки, целое число и т. Д.),Для класса Triple определите:
-getElement метод, который получает целое число (1,2 или 3) и возвращает соответствующий член.В случае недопустимого аргумента бросьте исключение IllegalArgumentExpression -setElement, которое получает два аргумента: целое число (1, 2 или 3) и значение, которое должно быть помещено как член из трех в соответствующую позицию (например, setElement (2,3) устанавливает 3 в y значение trio) -a конструктора с 3 аргументами, которые устанавливают начальные значения Triple
. Затем вы должны написать класс ComparableTriple, который представляет триплет.Члены триплета должны быть сопоставимы (реализовать Comparable интерфейс).Затем разверните класс ComparableTriple для реализации интерфейса Comparable, чтобы триплеты можно было сравнивать по позициям.Например, (2,6,1) находится в рейтинге до (3,4,5), но позади (2,6, -4).Тот же шаблон можно применить к строке и т. Д.
Пример основного кода:
Triple t1 = new ComparableTriple <> (2, 6, 1);int x = t1.compareTo (t1);// должно быть 0
//Triple class I wrote
public class Triple<T> {
T x, y, z;
public Triple(T x, T y, T z) {
this.x = x;
this.y = y;
this.z = z;
}
public T getElement(int position) {
if (position == 1) {
return x;
} else if (position == 2) {
return y;
} else if (position == 3) {
return z;
} else throw new IllegalArgumentException();
}
public void setElement(int position, T value) {
if (position == 1) {
x = value;
} else if (position == 2) {
y = value;
} else if (position == 3) {
z = value;
} else throw new IllegalArgumentException(); }
}
Я пытался написать переопределенный метод ComparableTriple CompareTo, но не смог найти точное решение.Это не так сложно, но я новичок в Generics и не могу понять некоторые вещи.Кто-нибудь может мне помочь с остальным кодом?