Какова правильная реализация класса DoublyLinkedList, который расширяет LinkedList в Java? - PullRequest
0 голосов
/ 24 декабря 2011

У меня есть свой собственный класс LinkedList, в котором есть указатель на первый Node в списке.Теперь мне нужно создать класс DoublyLinkedList.Единственная разница между DoublyLinkedList и LinkedList заключается в том, что DoublyLinkedList использует DoubleNode с вместо Node с.Мой класс DoubleNode расширяет класс Node.

Каков правильный способ создания DoublyLinkedList, который расширяет LinkedList?

Пришлось быпостоянно приводить DoubleNode с Node с?Или есть более простой способ, который я просто пропускаю?

Спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 05 января 2012

Ну, мне удалось выяснить это самостоятельно.

Как оказалось, единственный метод, который нужно изменить для DoublyLinkedList, - это метод add. Вот мой DoublyLinkedList метод добавления:

public void add(Object obj){
        DoubleNode newNode = new DoubleNode(obj);
        newNode.setPrev(getLast());
        super.add((Node)newNode);
    }

Создав new DoubleNode и затем приведя его к Node, я могу сохранить большинство методов одинаковыми. Если мне нужно получить доступ к указателю prev DoubleNode, я могу при необходимости уменьшить узел.

0 голосов
/ 24 декабря 2011

Использовать Обобщения - иметь тип вашего узла в качестве параметризованного типа на LinkedList.

...