2014-04-10 22 views

Trả lời

12

Trong một liner:

new LinkedList<>(myQueue);

Kể từ Queue extends Collection và bộ sưu tập có một constructor mà mất Collection khác, đây là một cách nhanh chóng để làm một bản sao cạn.

Thay thế LinkedList bằng cách thực hiện Queue của riêng bạn nếu bạn muốn.

Ngoài ra, hãy đọc javadocs. Họ có tất cả các câu trả lời.

+3

LinkedList mới (myQueue); nên làm – nos

+1

Bạn nói đúng, tôi là một thằng ngốc. Hàng đợi mở rộng Bộ sưu tập. – Kayaman

2

Nếu q1 là một trong những JCF triển khai của Queue như ArrayQueue vv là Cloneable bạn có thể sử dụng

Queue q2 = ((Cloneable)q1).clone(); 

khác

Queue q2 = q1.getClass().newInstance(); 
    for(Object e : q1) { 
     q2.add(e); 
    } 
1

bạn có thể sử dụng một iterator:

Iterator<Integer> it = q1.iterator(); 
while(it.hasNext()) { 
    q2.add(it.next()); 
} 
Các vấn đề liên quan