Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get max() element from List in Guava

Tags:

java

guava

Let's say we have a Collection of Items:

class Item {     public String title;     public int price; }  List<Item> list = getListOfItems(); 

I would like to get an Item with a maximum price out of that list with Guava library (with Ordering, I presume). I mean something similar to this Groovy code:

list.max{it.price} 

How do I do that? How efficient is it?

like image 669
Mike Minicki Avatar asked Aug 01 '12 12:08

Mike Minicki


1 Answers

Ordering<Item> o = new Ordering<Item>() {     @Override     public int compare(Item left, Item right) {         return Ints.compare(left.price, right.price);     } }; return o.max(list); 

It's as efficient as it can be: it iterates through the items of the list, and returns the first of the Items having the maximum price: O(n).

like image 179
JB Nizet Avatar answered Sep 21 '22 23:09

JB Nizet