假设我们有一个项目集合:
class Item { public String title; public int price; } List<Item> list = getListOfItems();
我想从Guava库(该列表为Ordering,我想)中从列表中获得最高价格的商品。我的意思类似于此Groovy代码:
list.max{it.price}
我怎么做?有效率吗?
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);
它的效率是最高的:遍历列表中的项目,并返回价格最高的第一个Item:O(n)。