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