说我有:
class Item {
int id;
int type;
}
我可以做这个:
List<Item> items;
Item itemToFind;
Comparator<Item> itemComparator;
Collections.binarySearch(items, itemToFind, itemComparator);
但是,假设我只获得了对象的一个属性,而不是整个对象,type例如上面的示例。假设列表按该属性排序,Java 或某些已建立的库中是否有标准方法可以做到这一点:
List<Item> items;
Function<Item, Integer> typeExtractor = Item::getType;
int typeToFind;
Comparator<Integer> typeComparator = Integer::compare;
binarySearch(items, typeExtractor, typeToFind, typeComparator);
没有额外的开销(例如转换List<Item>为List<Integer>调用Collections.binarySearch或类似的)?
慕沐林林
子衿沉夜
相关分类