任何人都可以用例子来解释。到目前为止我看到的例子只包括SortedSet(使用TreeSet实现)和List(使用ArrayList实现)。我想知道我们是否可以使用set,map ...如果是这样的话?
答案 0 :(得分:1)
当然它用于其他课程!例如,Arrays
类有一个sort
方法,它接受Comparator
作为参数。这是文档:
实际上,对于这种类型的东西,你可以在线搜索,你可以看到接受Comparator
作为参数的方法。我认为大多数集合类都有。
您还询问了如何使用带有集合和贴图的比较器。答案是......(鼓卷)在文档中!只需谷歌搜索它,你就会找到答案!
答案 1 :(得分:0)
比较器在Java API的许多地方使用。
例如,Stream
类在Comparator
和min
方法中使用max
根据给定比较器返回流中的最小或最大项。
例如:
interface Person {
int getAge();
}
List<Person> people;
Optional<Person> oldestPerson = people.stream()
.max(Comparator.comparingInt(Person::getAge));
使用键值上的比较器查找地图键的示例:
Map<String, Integer> employeeNameSalaryMap;
Optional<String> lowestPaidPerson = employeeNameSalaryMap
.valueSet().stream()
.min(Map.Entry.comparingByValue())
.map(Map.Entry::getKey);