Как вы реализуете свой собственный lastIndexOf(E e) для списков ссылок в java?

#java #interface #implementation #interface-implementation

Вопрос:

 public int lastIndexOf(E e) {
// Left as an exercise
// TODO : Implement this method
Node<E> current = tail;
 

не уверен, как завершить этот цикл для:

 for (int i = size - 1; i >= 0; i--) {
    if(e.equals(current))
        return i;
    
} 

return -1;
 

}

Эта программа просит меня создать метод lastIndexOf для моего собственного интерфейса LinkedList. Предполагается, что lastIndexOf(E e) возвращает индекс, в котором e найден элемент. Это не то же самое, что indexOf(E e) потому, что алгоритм требует, чтобы я смотрел с конца списка, а не с начала

Ответ №1:

Обратная итерация для цикла выглядит нормально. Однако вы сравниваете не то, что нужно.

Вы можете получить текущий элемент с this.get(index) помощью .

 public int lastIndexOf(E e) {    
    for (int i = size - 1; i >= 0; i--) {
        E element = get(i);
        if (e == null amp;amp; element == null) return i;
        if (e != null amp;amp; e.equals(element)) return i;
    } 
    
    return -1;
}