如何在不使用Arrays.asList()方法或Java list接口的情况下将数组转换为列表



我得到了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]);
}

相关内容

最新更新