java 对象list 根据对象的两个数字字段,进行列表排序
时间: 2024-05-03 12:16:39 浏览: 70
要对 Java 对象 List 根据对象的两个数字字段进行列表排序,你可以使用 Java 的 Comparator 接口。Comparator 接口是一个函数式接口,你可以使用 Lambda 表达式简化代码。
下面是一个示例代码:
```java
import java.util.*;
public class Example {
public static void main(String[] args) {
// 创建对象列表
List<MyObject> list = new ArrayList<>();
list.add(new MyObject(2, 1));
list.add(new MyObject(1, 2));
list.add(new MyObject(3, 3));
// 根据数字字段进行排序
Collections.sort(list, Comparator.comparing(MyObject::getNumber1).thenComparing(MyObject::getNumber2));
// 输出排序后的列表
System.out.println(list);
}
}
class MyObject {
private int number1;
private int number2;
public MyObject(int number1, int number2) {
this.number1 = number1;
this.number2 = number2;
}
public int getNumber1() {
return number1;
}
public int getNumber2() {
return number2;
}
@Override
public String toString() {
return "MyObject{" +
"number1=" + number1 +
", number2=" + number2 +
'}';
}
}
```
在上面的示例代码中,我们首先创建了一个对象列表 `list`。然后,我们使用 `Comparator.comparing()` 方法指定两个数字字段进行排序。`thenComparing()` 方法可以用于在第一个字段相同时,按照第二个字段进行排序。最后,我们使用 `Collections.sort()` 方法对列表进行排序。
输出结果为:
```
[MyObject{number1=1, number2=2}, MyObject{number1=2, number2=1}, MyObject{number1=3, number2=3}]
```
可以看到,列表已经按照指定的数字字段进行排序了。
阅读全文