[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-pochemu-linkedlist-realizuet-i-list-i-deque":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":17,"progress":18,"seo":19},461,"pochemu-linkedlist-realizuet-i-list-i-deque",12,"collections","Collections","📚","Почему LinkedList реализует и List, и Deque","`LinkedList` реализует оба интерфейса, потому что его внутренняя структура (двусвязный список) эффективно поддерживает операции обоих контрактов. Как List, он предоставляет доступ по индексу и упорядоченное хранение. Как Deque, он поддерживает добавление и удаление с обоих концов за O(1), т.к. хранит прямые ссылки на первый и последний узлы.\n\nНа практике это означает, что LinkedList можно использовать как список, как очередь и как стек. Однако для очереди и стека лучше использовать `ArrayDeque` — он быстрее благодаря cache locality массива.\n\n> **На собеседовании:** объясните, что двусвязный список естественно поддерживает обе абстракции. Упомяните, что для чистой очереди\u002Fстека предпочтительнее ArrayDeque.","","junior",[15,16],"interface","jcf",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":33,"featuredSnippetReady":34},"Почему LinkedList реализует List и Deque — Gymterview","Двусвязный список эффективно поддерживает обе абстракции: доступ по индексу (List) и операции с обоих концов за O(1) (Deque). Для чистой очереди лучше ArrayDeque.","LinkedList: List + Deque — Gymterview","Двусвязный список естественно поддерживает List (индексы) и Deque (O(1) с обоих концов).",[25,26,27,28,29,30,31,32],"LinkedList","List","Deque","двусвязный список","O(1)","ArrayDeque","Java","собеседование","Двусвязный список естественно поддерживает обе абстракции: упорядоченное хранение с доступом по индексу (List) и O(1) операции с обоих концов (Deque). Для чистой очереди\u002Fстека предпочтительнее ArrayDeque.",true]