java传参排序_java 自定义类传递两个参数要求一个升序、一个降序
时间: 2024-01-14 12:05:20 浏览: 127
您可以通过实现 `Comparator` 接口来自定义排序规则,并通过 `Collections.sort()` 方法进行排序。以下是一个示例:
假设您有一个名为 `MyClass` 的自定义类,其中包含两个属性 `propA` 和 `propB`,您希望按照 `propA` 升序、`propB` 降序的顺序进行排序。
首先,您需要在 `MyClass` 中实现 `Comparable` 接口,以便可以使用 `Collections.sort()` 方法进行排序:
```java
public class MyClass implements Comparable<MyClass> {
private int propA;
private int propB;
// 构造函数、getter和setter等代码省略
@Override
public int compareTo(MyClass other) {
if (this.propA != other.propA) {
return Integer.compare(this.propA, other.propA);
} else {
return Integer.compare(other.propB, this.propB);
}
}
}
```
在上述代码中,`compareTo()` 方法首先比较两个对象的 `propA` 属性,如果它们不相等,则按升序返回它们的比较结果。如果它们相等,则按降序比较它们的 `propB` 属性。
现在,您可以使用 `Collections.sort()` 方法对一个包含 `MyClass` 对象的列表进行排序:
```java
List<MyClass> myObjects = new ArrayList<>();
// 添加一些 MyObjects 到列表中
Collections.sort(myObjects);
```
在上述代码中,`Collections.sort()` 方法将使用 `MyClass` 的 `compareTo()` 方法对 `myObjects` 列表进行排序,按照您所需的顺序排序。
阅读全文