Giống như tiêu đề cho biết, tôi muốn có HashSet an toàn chỉ bằng Bộ sưu tập ổi.HashSet an toàn theo chủ đề với Bộ sưu tập tiếng tăm
Bạn có thể giúp tôi không?
Cảm ơn!
Giống như tiêu đề cho biết, tôi muốn có HashSet an toàn chỉ bằng Bộ sưu tập ổi.HashSet an toàn theo chủ đề với Bộ sưu tập tiếng tăm
Bạn có thể giúp tôi không?
Cảm ơn!
Đây sẽ là câu trả lời đúng, Sử dụng lớp Bộ từ ổi. Dù sao câu trả lời từ @crhis đã được dự định tốt.
Sets.newSetFromMap(new ConcurrentHashMap<V, Boolean>());
Set<K> set = Collections.newSetFromMap(new ConcurrentHashMap<K, Boolean>());
Xin cảm ơn, tôi sẽ dùng thử. – santiagobasulto
Btw, tất cả các điểm của bạn thuộc về tôi khi tôi trả lời câu hỏi này trên danh sách gửi thư ổi, 8 phút trước khi nó được đăng ở đây;) – whiskeysierra
@Willi: Nếu tôi có thể gán chúng cho bạn, tôi sẽ, bởi vì tôi đã nhấn mũ đại diện của tôi trong ngày, vì vậy tôi hoàn toàn không có đại diện cho câu trả lời này. :-P –
Google Collections có một phương pháp nhà máy tên Sets.newConcurrentHashSet() một thời gian.
thực hiện của nó cũng tương tự như đề nghị của Chris:
public static <E> Set<E> newConcurrentHashSet() {
return newSetFromMap(new ConcurrentHashMap<E, Boolean>());
}
Họ đã có một newSetFromMap() phương pháp bên trong com.google.common.collect.Sets lớp (được viết bởi Doug Lea với sự hỗ trợ từ thành viên của JCP JSR-166). Phương thức đó đã được thêm vào java.util.Collections trong java 1.6.
Nó đã bị rút trong Google Bộ sưu tập 1.0rc1, vì có kế hoạch hỗ trợ tốt hơn các bộ đồng thời trong ổi (xem thêm thông tin here).
This post mở rộng việc sử dụng phương thức "newSetFromMap" để tạo các tập hợp đồng thời.
Bạn có đặt là không thay đổi không? – louisgab
Sẽ không có ý nghĩa gì trong việc đưa vào luồng an toàn khi nó đã không thay đổi, phải không? – whiskeysierra
Bạn là Willi righy. Nó sẽ không bất biến. Một số chủ đề sẽ biến đổi đồng thời. – santiagobasulto