У меня есть пользовательский интерфейс ArrayList, который расширяет класс Comparable и находится в порядке возрастания. Класс, над которым я работаю, реализует этот интерфейс.
Моя проблема в том, что мне нужно отредактировать метод add, чтобы он добавлял элемент в ArrayList, оставлял порядок в List и следил за тем, чтобы не было дубликатов.
Было бы легко сделать все это отдельными способами, но это не вопрос. Мне нужен один метод, чтобы сделать все это, чтобы при вызове метода (если он не является дубликатом) элемент добавлялся в правильную позицию.
Кроме того, чтобы проверить положение индекса, в который нужно вставить метод, я должен использовать метод compareTo (), унаследованный от класса Comparable. Единственная проблема заключается в том, что я должен реализовать свой собственный метод compareTo () в классе, над которым я работаю. Я осмотрелся повсюду и запутался, как это сделать для этого определенного класса.
Вот мой код:
public void add(E item) throws IndexOutOfBoundsException {
if (contains(item)) {
throw new IllegalArgumentException("This is a duplicate!");
}
//here is where I need the implementation to add the item to the array, in order
}
Тогда вот мой метод compareTo ():
public int compareTo(E item) {
if () {
return -1;
}
else if () {
return 1;
}
else {
return 0;
}
}