gpt4 book ai didi

java - 什么是 keyExtractor 参数

转载 作者:行者123 更新时间:2023-12-01 10:16:59 25 4
gpt4 key购买 nike

我正在学习 Comparator 接口(interface),但我对它的静态 Comparator.comparing() 方法感到困惑。关于 Comparator.comparing() 方法的参数以及它如何使用方法引用。当我查看文档时,它说它有一个“keyExtractor 参数”。你能解释一下让我困惑的地方吗?

最佳答案

来自 Comparator#comparing(Function) 的文档:

Accepts a function that extracts a Comparable sort key from a type T, and returns a Comparator<T> that compares by that sort key.

这样您就可以根据对象的属性来比较这些对象。同样的文档给出了一个例子:

API Note:

For example, to obtain a Comparator that compares Person objects by their last name,

Comparator<Person> byLastName = Comparator.comparing(Person::getLastName);

当你这样做时:

Person p1 = ...;
Person p2 = ...;
int result = byLastName.compare(p1, p2);

给定的键提取器将从每个 Person 中提取姓氏值为了比较这些值而不是 Person “直接”对象。如果 key 不是 Comparable那么你可以使用 the overload它可以让你指定一个 Comparator用于比较提取的键值。


以上byLastName比较器将与:

public class ByLastNameComparator implements Comparator<Person> {

@Override
public int compare(Person p1, Person p2) {
return p1.getLastName().compareTo(p2.getLastName());
}
}

在哪里调用 p1.getLastName()p2.getLastName()将是关键提取器 Function实现。

关于java - 什么是 keyExtractor 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60694634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com