Trong một chương trình Java, tôi có danh sách các hạt mà tôi muốn lọc dựa trên một thuộc tính cụ thể.Lọc danh sách JavaBeans bằng Google Guava
Ví dụ: giả sử tôi có danh sách Người, JavaBean, trong đó Người có nhiều thuộc tính, trong số đó là 'tên'.
Tôi cũng có danh sách tên.
Bây giờ tôi muốn tìm tất cả những người có tên trong danh sách tên.
Cách tốt nhất để thực thi bộ lọc này bằng Google ổi là gì?
Cho đến nay, tôi đã nghĩ đến việc kết hợp Guava với đậu tương Apache, nhưng điều đó không có vẻ thanh lịch.
Tôi cũng tìm thấy thư viện tiện ích phản chiếu tại đây: http://code.google.com/p/guava-reflection/, nhưng tôi không chắc chắn cách sử dụng thư viện (có ít tài liệu).
Mọi suy nghĩ?
p.s. Bạn có thể nói tôi thực sự bỏ qua việc hiểu danh sách Python không?
Sự khác biệt chính giữa giải pháp này và của tôi là giải pháp này tạo ra một danh sách mới chứa những người được lọc, trong khi tôi tạo ra một cái nhìn trên danh sách ban đầu. Cho dù một hay khác là thích hợp phụ thuộc vào trường hợp sử dụng. –
Có, nó phụ thuộc vào trường hợp sử dụng - nhưng tôi muốn nói rằng trong 90% các trường hợp sử dụng, các cải thiện khả năng đọc lớn hơn các lợi ích hiệu suất nhỏ. –
Bạn dường như nghĩ rằng hai lĩnh vực thỏa hiệp duy nhất là khả năng đọc và hiệu suất. Sự đúng đắn quan trọng hơn cả khả năng đọc và hiệu suất (nghĩa là). Nếu bạn làm theo cách này, bạn không chỉ phải kiểm tra logic vị ngữ của mình, mà còn là logic lọc của bạn. Bạn đã tăng gấp đôi không cần thiết (ít nhất là do trạng thái có thể thay đổi được giới thiệu) số lượng những thứ có thể sai. Nhân số này với số lần bạn lọc qua một codebase ... tại sao bạn lại muốn làm việc theo cách này? –