2013-05-10 41 views
15

Tôi đang cố gắng hiểu khi sử dụng hai cấu trúc dữ liệu. Theo như tôi đã hiểu PriorityQueue cũng được thực hiện như là một cây như tài liệu nói rằng thời gian avg cho chèn loại bỏ và chứa là O (logn). Cây cối cũng cung cấp độ phức tạp tương tự. Cộng với cả hai người trong số họ là unsynchorized thực hiện. Và tôi có thể viết so sánh cho họ để hành động như min heap hoặc heap tối đa.Sự khác biệt giữa PriorityQueue và TreeSet trong Java?

Có thể một số chỉ ra trong điều kiện nào tôi sử dụng hai bộ này.

Xin cảm ơn,

Trả lời

21

Khi bạn muốn hàng đợi, hãy sử dụng PriorityQueue. Khi bạn muốn một Set, hãy sử dụng TreeSet. Một TreeSet có các phần tử độc đáo và không cung cấp API của một Hàng đợi. Hàng đợi không cung cấp API của Tập hợp và cho phép nhiều phần tử bằng nhau.

+2

không có hai phần tử giống nhau trong một TreeSet – Sheldon

+0

đơn giản và thanh lịch! – UCJava

Các vấn đề liên quan