我想知道是否有办法在Apache commons-collection库中使用比较器找到集合的最小值或最大值。与Guava相当的东西:
return Ordering.from(comparator).max(collection);
答案 0 :(得分:4)
java.util.Collections
有方法
max(Collection) // natural order
max(Collection, Comparator) // according to compare provided
min(Collection) // natural order
min(Collection, Comparator) // according to compare provided
答案 1 :(得分:0)
为什么不简单地使用Collection类的min和max方法?
示例:
LinkedList<Integer> list = new LinkedList<Integer>();
list.add(-15);
list.add(33);
list.add(-23);
list.add(11);
System.out.println("Max value: " + Collections.max(list,comparator));
答案 2 :(得分:0)
Item getMax(Collection<Item> items, Comparator<Item> comparator) {
Item temp = null;
for(Item item : items) {
if(temp == null || comparator.compare(temp, item) < 0)
temp = item;
}
return temp;
}
Item getMin(Collection<Item> items, Comparator<Item> comparator) {
Item temp = null;
for(Item item : items) {
if(temp == null || comparator.compare(temp, item) > 0)
temp = item;
}
return temp;
}