Comparator.comparingInt(Person::getAge)
时间: 2023-11-07 15:02:57 浏览: 52
Comparator.comparingInt(Person::getAge)是一种Comparator的定义方式,用于按照Person对象的年龄属性进行排序。它可以替代Comparator.comparing(Person::getAge),并提供更高效的比较方式,因为comparingInt方法针对基本数据类型int进行比较,而comparing方法则针对包装类Integer进行比较。
相关问题
stream流Comparator.comparingInt方法有什么作用
`Comparator.comparingInt` 方法用于根据对象的一个整数属性进行比较。它接受一个 `ToIntFunction` 函数接口类型的参数,该接口定义了将对象转换为整数的方法。该方法返回一个 `Comparator` 对象,该对象将根据整数属性对对象进行比较。
使用 `Comparator.comparingInt` 方法可以方便地对对象按照整数属性进行排序。例如,假设有一个 `List` 对象,其中包含多个 `Person` 对象,每个 `Person` 对象都有一个 `age` 属性表示年龄,可以使用以下代码对它们按照年龄进行排序:
```
list.sort(Comparator.comparingInt(Person::getAge));
```
这将按照 `Person` 对象的年龄属性对它们进行升序排序。
Comparator.comparing是干什么的
Comparator.comparing是Java中的一个静态方法,用于创建一个比较器(Comparator)。它允许我们根据对象的某个属性进行排序。
使用Comparator.comparing方法,我们可以通过提取对象的属性来创建一个比较器。比较器可以用于对对象进行排序,以便按照指定的规则进行比较和排序。
Comparator.comparing方法有多个重载形式,可以根据需要选择不同的比较方式。比如,可以使用Comparator.comparingInt、Comparator.comparingLong和Comparator.comparingDouble来比较基本数据类型的属性。
下面是一个使用Comparator.comparing方法的示例:
```java
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
public class Main {
public static void main(String[] args) {
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 30));
people.add(new Person("Charlie", 20));
// 按照年龄升序排序
people.sort(Comparator.comparing(Person::getAge));
// 输出排序结果
for (Person person : people) {
System.out.println(person.getName() + " - " + person.getAge());
}
}
}
```
运行以上代码,输出结果为:
```
Charlie - 20
Alice - 25
Bob - 30
```
这个例子中,我们使用Comparator.comparing方法创建了一个比较器,按照人的年龄进行排序。通过调用List的sort方法,我们可以对人的列表进行排序,并按照指定的规则输出排序结果。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)