私は、リストからいくつかのエントリを除外するためにJavaの関数ライブラリを利用しようとしています。Javaで複数のプロパティでリストをフィルタリングする方法は?
私はBookオブジェクトのリストを持っています。Bookオブジェクトは最初にBook IDで、次にリビジョン番号で並べられます。以下の例では、リストに9つのブックオブジェクトがあります。
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)に基づいて、私は複数のフィールドに基づいてフィルタリングできるようにするために、フィルタやコンパレータのようなものを使用して、いくつかの機能的能力を持っていますか?私はしようとすると、コレクションをループし、可能な場合はフィルタリングを行うために自分の関数を記述することを避ける...任意の提案ですか?
多分、いくつかのコンパレータを持つ 'TreeSet' –
あなたはmap wiにそれを集めることができますそれは実現可能ですか? – ByeBye
java 8を使用していて、あらかじめフィルタリングする値を知っている場合は、https://stackoverflow.com/questions/122105/what-is-thebestway-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