Как я могу преобразовать массив в список без использования метода Arrays.asList () или Java List Interface - PullRequest
0 голосов
/ 21 марта 2020

У меня есть 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;

..., на котором я могу делать различные вещи, такие как добавление элементов в мой список или замена их, удаление некоторых элементов, см. размер моего списка и т. д. c. Одним из примеров этих методов может быть 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();
}

Мне не хватает только одного метода преобразования массива в список, очевидно, с ранее упомянутыми ограничениями.

Ответы [ 2 ]

0 голосов
/ 21 марта 2020

Одним из решений является l oop через массив и просто заполнить вас 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
}
0 голосов
/ 21 марта 2020

Вы должны перебрать массив с для l oop. И вызывать addFirst() функцию в каждой итерации.

Node a[] = new Node[]{node1,node2,node3,node4};
for (int i=0; i<a.length; i++) {
  yourListObject.addFirst(a[i]);
}
...