В каком порядке LinkedList удаляет узел?

В каком порядке LinkedList удаляет узел?

Когда вы используете метод .remove(object o) используя класс java LinkedList, в каком порядке он удаляет узел?

Удаляется ли удаление из первого индекса LinkedList или начинается с последнего узла и перемещается назад?

6 ответов

Как указано Java API, LinkedList:

remove (Object o)

Удаляет первое вхождение указанного элемента из этого списка, если оно присутствует.

Если элемент удален, метод вернет True, иначе False.

В следующий раз, когда у вас возник вопрос о базовых методах или функциях, я предлагаю вам взглянуть в Java API. Здесь вы можете легко найти все основные функции.


В javadoc говорится:

Удаляет первое вхождение указанного элемента из этого списка, если оно присутствует. Если этот список не содержит элемент, он не изменяется. Более формально удаляет элемент с самым низким индексом я таким образом, что (o == null? Get (i) == null: o.equals(get (i))) (если такой элемент существует). Возвращает true, если этот список содержит указанный элемент (или, что то же самое, если этот список изменился в результате вызова).

API - ваш друг. В будущем попробуйте следующее:

  1. Открыть браузер
  2. Введите "www.google.com" в адресной строке
  3. В поле поиска введите "java", а затем пробел, за которым следует имя класса, у вас есть вопрос о
  4. Нажмите клавишу "Enter" или нажмите кнопку поиска google.


Первое появление. см. http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#remove%28java.lang.Object%29

Тело должно быть не менее 30 символов; вы ввели 23.


remove (object o) удаляет первое вхождение объекта, начиная с начала списка.


Здесь вы идете, проверьте LinkedList#remove(Object) Фактически он удаляет первое вхождение.


В документации он удаляет первое вхождение.

Примерно вы можете представить, что каждый узел выполняет что-то подобное

if(this.value.equals(o)) {
 this.prev.next = this.next;
 this.next.prev = this.prev;
 return true;
} else if (this.next == null) {
 return false;
} else {
 return this.next.remove(o);
}

licensed under cc by-sa 3.0 with attribution.