Java 来自泛型元素数组的递归构造函数
我有这样一个任务,我必须用java实现一个链表类,但是,它需要完全用递归函数实现,甚至是构造函数 老师提供的项目中给出的构造函数接收到一个由n个带3点符号的泛型元素(T…元素)组成的数组,在搔了搔头之后(我从来没有做过递归构造函数),我想出了一些显然不起作用的东西:Java 来自泛型元素数组的递归构造函数,java,recursion,constructor,Java,Recursion,Constructor,我有这样一个任务,我必须用java实现一个链表类,但是,它需要完全用递归函数实现,甚至是构造函数 老师提供的项目中给出的构造函数接收到一个由n个带3点符号的泛型元素(T…元素)组成的数组,在搔了搔头之后(我从来没有做过递归构造函数),我想出了一些显然不起作用的东西: public SingleLinkedListImpl(T ... elements) { if(elements.length<=1){ header = new Node<T>(elem
public SingleLinkedListImpl(T ... elements) {
if(elements.length<=1){
header = new Node<T>(elements[0]);
} else {
addLast(elements[0]);
elements=Arrays.copyOfRange(elements, 1, elements.length-1);
this(elements);
}
}
public SingleLinkedListImpl(T…元素){
if(elements.length“递归构造函数”并不等同于调用this()
,而是调用新的SingleLinkedListImpl()
而且,这是头,而不是有头
假设您的类有next
和value
字段,使用伪代码:
- 如果数组为空,则抛出一个
IllegalArgumentException
- 将
value
设置为数组的第一个元素
- 如果数组中有多个元素,请将
next
的值设置为new SingleLinkedListImpl()
称之为:
SingleLinkedListImpl<Integer> head = new SingleLinkedListImpl<>(3, 1, 4, 1, 5); // for example
SingleLinkedListImpl头=新的SingleLinkedListImpl(3,1,4,1,5);//例如
您可以尝试重载构造函数。我曾尝试在递归调用中实现并使用SimpleLinedListImpl(T元素),但错误仍然存在。