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より大きい場合はどうなりますか?このバインドされた値は、キューの「スナップショット」を定義しますか?
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);
}