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);
}
ArrayDeque
またはLinkedList
またはLinkedBlockingDeque
を使用する必要がありますか? int値10を設定するとどうなりますか?これはキューが一度に10個しか保持しないことを意味しますか? DBのサイズから取得したコレクションが10より大きい場合はどうなりますか?このバインドされた値は、キューの「スナップショット」を定義していますか?java:ArrayDequeまたはLinkedListまたはLinkedBlockingDequeを使用した非再帰的な深さの最初の検索?
public void traverse(Node root){
LinkedBlockingDeque<Node> queue = new LinkedBlockingDeque<Node>(10);
queue.add(root);
while(!queue.isEmpty()){
Node currentNode = queue.pollFirst();
List<Node> nl = getChildrenfromDB(currentNode);
queue.addAll(nl);
}
前にコードを追加してください。キューの場合、これはあまり難しくありません。 –
'List.addAll(int index、Collection extends E> c)'についてはどうですか? – blackcompe