2012-02-17 20 views
18

Tôi có một TreeSet chứa> 100k đối tượng. Tôi có một phương thức khác yêu cầu ArrayList như một tham số.Chuyển đổi một TreeSet thành ArrayList?

Có cách nào tôi có thể thực hiện việc này mà không cần lặp lại toàn bộ TreeSet và sau đó thêm từng đối tượng theo cách thủ công vào ArrayList không?

+0

Có thể thư giãn chữ ký phương pháp để nhận chỉ một Bộ sưu tập? Bằng cách đó không cần sao chép. –

Trả lời

43

Làm thế nào về điều này:

new ArrayList<T>(set); 
+3

Đây là điều tốt nhất bạn sẽ nhận được. Không có giải pháp nào không yêu cầu thời gian tuyến tính. –

3

ArrayList có một phương pháp thuận tiện addAll phù hợp với các hóa đơn độc đáo:

final Set<Object> set = ... 
List<Object> list = new ArrayList<Object>(someBigNum); 
list.addAll(set); 
+4

someBigNum có thể được set.size() –

+1

someBigNum là rất gây hiểu nhầm ở đây ... Bạn không cần một số lớn. Bạn chỉ cần set.size() như kuldeep chỉ ra –