I'm trying to make use of Java's functional library to filter out some entries from a List.
I have a list of Book objects, ordered first by a Book ID and then by a Revision Number. Example below where I have nine Book objects in the list.
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
I'd like to filter the list so that I only have the highest Revision Number for each Book ID.
Book: ID 1, Revision Number 3
Book: ID 2, Revision Number 3
Book: ID 3, Revision Number 3
Does Java have some functional capability using something like filter or a Comparator to allow me to filter based on multiple fields, based on a common value (Book ID)? I'd like to try and avoid having to write my own function to loop over the Collection and do the filtering if possible... Any suggestions?