Tôi có một bộ sưu tập với hai loại đối tượng. Tôi chỉ muốn đọc một trong hai loại này thành một Bộ mới. Có cách nào thanh lịch để thực hiện việc này không?Cách chỉ đọc các đối tượng cụ thể của một loại từ bộ sưu tập có nhiều loại đối tượng
6
A
Trả lời
5
Sử dụng Google ổi của.
Collections2.filter(yourOriginalCollection, new Predicate<Object>() {
public boolean apply(Object obj) {
return obj instanceof TypeYouAreInterestedIn;
}
});
Hoặc trong Java 8:
Collections2.filter(yourOriginalCollection, (obj) -> obj instanceof TypeYouAreInterestedIn);
+0
@ M156 cảm ơn bộ lọc Java 8 –
+1
Không có vấn đề gì, tôi nghĩ rằng những biểu thức lambda này là một tính năng tuyệt vời mà cuối cùng đã đến Java 8, vì vậy chúng ta phải truyền bá từ: D – M156
1
Giống như Suresh nói có là không được xây dựng trong chức năng, ở đây một số loại mã hoàn chỉnh: bộ lọc
for(Object obj : yourOldCollection) {
if(obj instanceof SearchedType){
yourNewSet.add(obj);
}
}
Các vấn đề liên quan
- 1. Sắp xếp một bộ sưu tập của các đối tượng
- 2. Làm thế nào để chèn một đối tượng (đối tượng Kiểu mẫu) vào đối tượng Bộ sưu tập trong Laravel tại số chỉ mục cụ thể?
- 3. Nhiều loại đối tượng trong một ArrayList
- 4. Cách lấy đối tượng bằng "id" từ bộ sưu tập đối tượng propel?
- 5. Cách trả lại một đối tượng có nhiều loại
- 6. Bộ sưu tập bản đồ của các đối tượng
- 7. REST - Xóa bộ sưu tập đối tượng
- 8. Bộ sưu tập Backbone.js có nhiều loại
- 9. Bộ sưu tập tiêu chuẩn cho các đối tượng IDisposable
- 10. Java - Tạo một bộ sưu tập đối tượng thân thiện
- 11. Loại động của đối tượng
- 12. LINQ lựa chọn theo loại của một đối tượng
- 13. Elixir - Tạo đối tượng JSON từ 2 bộ sưu tập
- 14. Tôi có thể lưu các đối tượng, bộ sưu tập đối tượng trong một phiên Laravel 5 không?
- 15. Bộ sưu tập NHibernate và các đối tượng chuyển động
- 16. mảng hoặc bộ sưu tập đối tượng trong VBA Excel
- 17. MongoDB, loại bỏ đối tượng từ mảng
- 18. Cách truy cập đối tượng thứ n trong đối tượng bộ sưu tập Laravel?
- 19. AutoMapper: Lập bản đồ bộ sưu tập của đối tượng đến một tập hợp các chuỗi
- 20. Nhận một cá thể đối tượng mới từ một loại
- 21. Thực hiện IXmlSerializable trên một đối tượng bộ sưu tập
- 22. MongoDB loại bỏ các đối tượng GridFS khỏi shell
- 23. Làm thế nào để tìm và loại bỏ các đối tượng trùng lặp trong một bộ sưu tập bằng LINQ?
- 24. Java UnsupportedOperationException với Bộ sưu tập các đối tượng
- 25. Trong RegEx của .NET tôi có thể lấy một bộ sưu tập Nhóm từ một đối tượng Capture không?
- 26. loại bỏ đối tượng khỏi mảng chỉ với tham chiếu của đối tượng
- 27. Sử dụng querydsl làm cách nào tôi có thể kiểm tra đối với một đối tượng cụ thể từ một tập hợp các đối tượng phát sinh từ mối quan hệ Một đến Nhiều?
- 28. Nhận đối tượng cụ thể từ các rdata nộp
- 29. LINQ: Tìm kiếm một bộ sưu tập trong một bộ sưu tập cho một đối tượng duy nhất
- 30. EF 4: Loại bỏ đối tượng con khỏi bộ sưu tập không xóa nó - tại sao?
bạn có thể bọc đồ đó vào một bản đồ 'Bản đồ> 'và tách các đối tượng của lớp actuall theyr. –
SomeJavaGuy
Bạn có thể sử dụng lớp org.apache.commons.collections4.Predicate để xử lý theo cách thanh lịch. –