2014-01-06 3 views
1

Я изучаю java.util.LinkedList и listIterator в течение нескольких дней, и чувствую, что действительно сложно реализовать некоторые функции, такие как цикл LinkedList, и он не имеет структуры Node (я имею в виду что-то вроде элемента, следующего узла, предыдущего узла, я действительно знаю что-то похожее в итераторе), как вы это сделали, или просто создаете себя LinkedList класс? Кто-нибудь может помочь мне понять это? Я имею в виду просто использовать коллекцию java.util.LinkedList.Является ли java.util.LinkedList возможным создание связанного списка?

+1

Используйте «Итератор». Java 'LinkedList' никогда не передаст вам экземпляр своей внутренней реализации« Node ». –

+0

Спасибо, Бадди! Я просто хочу убедиться, что я ничего не пропустил во внутреннем классе о LinkedList. – Vizi

+0

Насколько я знаю, только реализации «Map» позволят вам использовать свои объекты «Entry». Обычно Java хочет скрыть фактическую реализацию, чтобы они могли изменить ее, не затрагивая код. –

ответ

2

A List в Java - это просто упорядоченная последовательность объектов. Эта концепция не учитывает такие вещи, как циклы, деревья и т. Д. Существует несколько реализующих классов, таких как LinkedList, ArrayList и т. Д., Которые реализуют List s разными способами; самое важное различие между ними состоит в том, что некоторые операции быстрее с некоторыми видами реализаций (например, вставка в LinkedList быстрее, чем ArrayList). Однако все они реализуют одну и ту же базовую концепцию, и вы не можете использовать их для чего-то другого.

Если вам нужна структура данных другого типа, вам придется либо реализовать ее самостоятельно (что не должно быть слишком сложно), либо искать какой-либо другой более общий пакет для обработки структур «графика». К сожалению, я не знаю одного из них.

+0

Это очень помогает мне. Спасибо за ваш ответ и терпение. – Vizi

Смежные вопросы