Java LinkedList Class
Вступление
LinkedList упорядочен по позиции индекса, как ArrayList, за исключением того, что элементы дважды связаны друг с другом. Эта связь дает вам новые методы (помимо того, что вы получаете из интерфейса List) для добавления и удаления из начала или конца, что делает его легким выбором для реализации стека или очереди. Связанный список имеет понятие узлов и данных. Здесь Node хранит значения следующего узла, в то время как данные хранят значение, которое он содержит. На диаграмме ниже показано, как LinkedList хранит значения. В LinkedList A, B и C. есть три элемента. Мы удаляем элемент B из середины LinkedList, который просто изменит значение узла узла A на указатель на узел C.
Имейте в виду, что LinkedList может повторяться медленнее, чем ArrayList, но это хороший выбор, когда вам нужна быстрая вставка и удаление.
LinkedList имеет два конструктора, показанные здесь:
iLinkedList ()
LinkedList (Коллекция <? Extends E> c)
Первый конструктор создает пустой связанный список. Второй конструктор создает связанный список, который инициализируется с элементами коллекции c.
Важные методы класса LinkedList:
метод | Описание |
---|---|
addFirst () или offerFirst () | Чтобы добавить элементы в начало списка |
addLast () или offerLast () или add () | Чтобы добавить элементы в конец списка |
getFirst () или peekFirst () | Получить первый элемент списка |
getLast () или peekLast () | Получить последний элемент списка |
removeFirst () или pollFirst () или remove () | Удалить первый элемент списка |
removeLast () или pollLast () | Удалить последний элемент списка |
Программа Java для демонстрации использования всех описанных выше методов. Здесь мы создаем LinkedList с именем myLinkedList и добавляем объекты с помощью методов add (), addFirst () и addLast (), а также с помощью метода add () на основе индекса, а затем печатаем все объекты. Затем измените список с помощью методов remove (), removeLast () и remove (Object o). Затем мы продемонстрируем использование методов getFirst () и getLast (). Вывод программы показан под кодом Java.
Java-код: перейти к редактору
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
LinkedList<String> myLinkedList = new LinkedList<String>();
myLinkedList.addFirst("A");
myLinkedList.add("B");
myLinkedList.add("C");
myLinkedList.add("D");
myLinkedList.add(2, "X");//This will add C at index 2
myLinkedList.addLast("Z");
System.out.println("Original List before deleting elements");
System.out.println(myLinkedList);
myLinkedList.remove();
myLinkedList.removeLast();
myLinkedList.remove("C");
System.out.println("Original List After deleting first and last object");
System.out.println(myLinkedList);
System.out.println("First object in linked list: "+ myLinkedList.getFirst());
System.out.println("Last object in linked list: "+ myLinkedList.peekLast());
}
}
Выход:
Резюме:
- LinkedList хорош для добавления элементов в конец, то есть стеки и очереди
- LinkedList работает лучше всего при удалении объектов из середины списка
- LinkedList реализует интерфейсы List, Deque и Queue, поэтому LinkedList можно использовать для реализации очередей и стеков.
Редактор кода Java:
Предыдущий: Java ArrayList и Vector
Далее: Java HashSet
Новый контент: Composer: менеджер зависимостей для PHP , R программирования