这是我的代码。为什么会出现“不受支持的操作”异常。我搜索了一些线程,说您需要如何将数组更改为列表然后添加。这对我的指示也正确吗?
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]);
}
}
答案 0 :(得分:1)
AbstractList
类为许多列表操作提供了 dummy 方法。如果调用了伪方法,通常会抛出UnsupportedOperationException
。您需要在您的add
类中覆盖继承的DLinkedList
方法。
为AbstractList
读javadoc。
此外,构造函数还有其他问题:
retval
变量。 this
上进行操作。this()
调用来链接到第一个构造函数。 请查看有关Java构造函数和构造函数链接的讲义/教程材料/教科书。