java传参排序_java 自定义类传递两个参数要求一个升序、一个降序
时间: 2024-01-15 15:02:29 浏览: 60
优先队列-java可以选择属性和升序降序
假设你有一个自定义类 `Person`,其中包含两个属性 `name` 和 `age`。你想要将一个 `Person` 对象的数组按照 `name` 属性升序排序,按照 `age` 属性降序排序。你可以使用 `Comparator` 接口来实现这个排序逻辑,具体步骤如下:
1. 创建一个 `Comparator` 对象,实现 `compare` 方法,按照 `name` 属性升序排序,如果 `name` 属性相同,则按照 `age` 属性降序排序。
```java
Comparator<Person> comparator = new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
int result = p1.getName().compareTo(p2.getName());
if (result == 0) {
result = p2.getAge() - p1.getAge();
}
return result;
}
};
```
2. 使用 `Arrays.sort` 方法对数组进行排序,传入上一步创建的 `Comparator` 对象。
```java
Person[] persons = {new Person("Tom", 20), new Person("Alice", 25), new Person("Bob", 30)};
Arrays.sort(persons, comparator);
```
现在,`persons` 数组中的元素按照 `name` 属性升序排序,如果 `name` 属性相同,则按照 `age` 属性降序排序。
阅读全文