我想利用Java的功能庫來過濾列表中的一些條目。如何通過Java中的多個屬性過濾列表?
我有一個Book對象列表,首先按Book ID排序,然後是修訂版號。下面的例子,我在列表中有九個Book對象。
Book: ID 1, Revision Number 1
Book: ID 1, Revision Number 2
Book: ID 1, Revision Number 3
Book: ID 2, Revision Number 1
Book: ID 2, Revision Number 2
Book: ID 2, Revision Number 3
Book: ID 3, Revision Number 1
Book: ID 3, Revision Number 2
Book: ID 3, Revision Number 3
我想過濾列表,以便我只有每本書ID最高版本號。
Book: ID 1, Revision Number 3
Book: ID 2, Revision Number 3
Book: ID 3, Revision Number 3
確實有Java的使用類似過濾器或比較,從而可以根據多個字段我來過濾,基於共同的價值(圖書ID)一些功能性的能力?我想盡量避免編寫自己的函數來循環使用Collection,並儘可能地進行過濾......有什麼建議嗎?
也許一個'TreeSet'與一些比較器 – 2017-08-09 17:41:26
你可以收集它來映射無線合併功能,是否可行? – ByeBye
如果您使用的是java 8並知道要事先過濾的值,請參閱https://stackoverflow.com/questions/122105/what-is-the-best-way-to-filter-a-java-collection解決方案基於[Collection.removeIf()](https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html#removeIf-java.util.function.Predicate-)可能是最好的適合你想要的東西 – csunday95