按顺序将数组中的所有元素添加到链接列表

时间:2018-10-24 00:17:42

标签: java

这是我的代码。为什么会出现“不受支持的操作”异常。我搜索了一些线程,说您需要如何将数组更改为列表然后添加。这对我的指示也正确吗?

public class DLinkedList<E> extends AbstractList<E> {

    /** Reference to the first node in our linked list. This will be null if the list is empty. */
    private Entry head;

    /** Reference to the last node in our linked list. This will be null if the list is empty. */
    private Entry tail;

    /** Number of elements currently in the list. */
    private int size;

    /**
     * Creates an empty list.
     */
    public DLinkedList() {
        DLinkedList<E>retVal= null;
        size = 0;
        head = null;
        tail = null;
    }

    /**
     * Creates a new linked list and initializes it so that it stores the elements from the given array in the identical
     * order.
     *
     * @param source Array holding the elements that should be stored in our new linked list.
     */


    public DLinkedList(E[] source) {
        DLinkedList<E>retVal= new  DLinkedList<E>();
        int l=source.length;
        for(int i=0;i<l;i++) {

            retVal.add(source[i]);


        }

    }

1 个答案:

答案 0 :(得分:1)

AbstractList类为许多列表操作提供了 dummy 方法。如果调用了伪方法,通常会抛出UnsupportedOperationException。您需要在您的add类中覆盖继承的DLinkedList方法。

AbstractListjavadoc


此外,构造函数还有其他问题:

  • 您不应拥有那些本地retval变量。
  • 您应该在this上进行操作。
  • 您的第二个构造函数可能应该使用this()调用来链接到第一个构造函数。

请查看有关Java构造函数和构造函数链接的讲义/教程材料/教科书。