Người duy nhất tôi có thể tìm thấy là BoundedFIFOBuffer, không được chấp nhận. Bất kì thứ khác?Có bộ sưu tập không bị chặn trong Java không?
Trả lời
BoundedFIFOBuffer
trong Bộ sưu tập của Apache Commons (mà tôi cho là những gì bạn đang đề cập đến) không được dùng nữa, nó vừa chuyển gói. Bản gốc trong số org.apache.commons.collections
không còn được dùng nữa và thay vào đó đã được chuyển đến org.apache.commons.collections.buffer
Có một số bộ sưu tập bị chặn trong Apache commons-collections, bao gồm BoundedFifoBuffer.
Trong cùng một thư viện, cũng là BoundedBuffer và CircularFifoBuffer
Tại sao không chỉ cần sử dụng một LinkedBlockingQueue
và sử dụng các phương pháp non-blocking offer
(hoặc add
) và poll
truy cập vào nó? Bạn có thể tạo nó với dung lượng cố định (tức là để làm cho nó bị giới hạn).
Một lựa chọn tốt khác. Cảm ơn. – Justin
Có lẽ không đáng được quan tâm, nhưng LinkedBlockingQueue vẫn sẽ mất một khóa. Các phiên bản tương lai của điểm phát sóng có thể tối ưu hóa điều đó. Nhưng một cái gì đó để được nhận thức khi profiling sau này. –
Gần đây tôi đã sử dụng Google Collections. Tôi nghĩ rằng bạn có thể có một giải pháp Java Generics khá dễ dàng với nó. Có một lớp được gọi là ForwardingList mà tôi nghĩ bạn có thể thực hiện ý tưởng này khá dễ dàng. Rõ ràng là không dễ dàng như chỉ sử dụng BoundedFifoBuffer (không chung chung) hoặc ArrayBlockingQueue.
final ArrayList<MyObject> realList = Lists.newArrayList();
final List<MyObject> list = new ForwardingList<MyObject>() {
protected List<MyObject> delegate() {
return realList;
}
public boolean add(MyObject obj) {
if(delegate().size() > 100) return false;
return delegate().add(obj);
}
};
- 1. Bộ sưu tập đồng thời không chặn?
- 2. Bộ sưu tập MongoDB có thể có bên trong bộ sưu tập khác không?
- 3. Bộ sưu tập rác java
- 4. WinRT có bộ sưu tập rác không?
- 5. Bộ sưu tập giống Java trong PHP
- 6. Có bộ sưu tập Threadsafe Observable trong .NET 4 không?
- 7. Bộ sưu tập lười biếng trong Java
- 8. Groovy không trong bộ sưu tập
- 9. Bộ sưu tập Java không có Bản đồ như một phần của khung tuyển tập
- 10. bộ sưu tập java so với bản đồ trong khung bộ sưu tập
- 11. Có hàng đợi chặn công bằng (không bị chặn) nào trong java không?
- 12. Bộ sưu tập rác dalvik Android có thể bị lỗi?
- 13. Lấy "dữ liệu từ bộ sưu tập b không có trong bộ sưu tập" trong truy vấn shell MongoDB
- 14. Bộ sưu tập chính và bộ sưu tập nhỏ của Java
- 15. Bộ sưu tập ngẫu nhiên Java
- 16. java: trả lại bộ sưu tập
- 17. Bộ sưu tập java là gì?
- 18. Java: sao chép Bộ sưu tập tùy ý thông qua tham chiếu đến Bộ sưu tập
- 19. .NET có bộ sưu tập biểu tượng không?
- 20. NewLISP có sử dụng bộ sưu tập rác không?
- 21. Tại sao iterating trên GetConsumingEnumerable() không hoàn toàn trống nằm bên dưới bộ sưu tập chặn
- 22. Chuyển đổi một bộ sưu tập Java thành một bộ sưu tập Scala
- 23. Tôi có thể chia bộ sưu tập PL/SQL không?
- 24. Bộ sưu tập các tệp CSS MVC có sẵn không?
- 25. Bộ sưu tập tuyển tập có mảng
- 26. Tại sao Google Bộ sưu tập không hỗ trợ MultiKeyMap như Bộ sưu tập Apache?
- 27. Sự khác biệt giữa Bộ sưu tập và Bộ sưu tập Java
- 28. Tìm nạp bộ sưu tập xương sống (thêm: đúng) không cập nhật bộ sưu tập
- 29. Tại sao Java bộ sưu tập API không có thực hiện cây
- 30. An toàn loại tốt hơn trong bộ sưu tập Java
Cảm ơn, bằng cách nào đó tôi đã truy cập trang không dùng nữa. – Justin