我得到了Node
类:
public class Node <T> {
private Node<T> next;
private T element;
public void setElement(T element) {
this.element = element;
}
public T getElement() {
return element;
}
public Node<T> getNext() {
return next;
}
public void setNext(Node <T> next) {
this.next= next;
}
}
我还有我的List
类:
public class List <T> {
Node<T> first;
Node<T> last;
我可以在上面做各种事情,比如向列表中添加元素或替换它们,删除一些元素,查看列表的大小等。这些方法的一个例子是addFirst()
。
public T addFirst(T element) {
Node<T> aux;
if (isEmpty()) {
aux = new Node<>();
first= aux;
lsat= aux;
aux.setElement(element);
} else {
aux = new Node<>();
aux.setElement(element);
aux.setNext(first);
first= aux;
}
return first.getElement();
}
我只缺少一个将数组转换为列表的方法,显然有前面提到的限制。
一种解决方案是循环遍历数组并简单地填充List
:
// your array of Nodes
Node<?>[] nodeArray = new Node[]{node1,node2,node3,node4,node5};
// your List
List<?> myList = new List<>();
for(Node<?> node : nodeArray)
{
myList.addLast(node); // use addLast() to keep the same order as the array
}
您应该使用for循环对数组进行迭代。并在每次迭代中调用addFirst()
函数。
Node a[] = new Node[]{node1,node2,node3,node4};
for (int i=0; i<a.length; i++) {
yourListObject.addFirst(a[i]);
}