Java: как добавить All (Collection <>) в начало очереди? - PullRequest
4 голосов
/ 30 октября 2011
public void traverse(Node root){
    ArrayDeque<Node> queue = new ArrayDeque<Node>();
        queue.add(root);

    while(!queue.isEmpty()){
        Node currentNode = queue.pollFirst();   
        List<Node> nl = getChildrenfromDB(currentNode);
        queue.addAll(nl);
    }

как мне получить addAll(nl), чтобы добавить всю коллекцию (List<Node>) в начало очереди?

Ответы [ 2 ]

9 голосов
/ 08 января 2014

На самом деле я искал то же самое, и это сработало для меня !!

samplelist.addAll(0,items); // 0 is the index where items are added on the list
8 голосов
/ 30 октября 2011

Нет ничего встроенного.Но это легко эмулировать - просто переберите список в обратном порядке и добавьте элементы.Таким образом они окажутся в очереди в правильном порядке.

for (int i = list.size() - 1; i >=0; i--) {
    queue.addFirst(node);
}

Другие способы итерации в обратном направлении:

  • LinkedList нисходящий итератор
  • Collections.reverse(..)

Выберите тот, который подходит вашему делу.

...