java集合根据字段排序
时间: 2023-09-10 21:11:33 浏览: 87
Android List(集合)中的对象以某一个字段排序案例
可以使用Java 8中的`Comparator`接口和Lambda表达式来根据字段排序,以下是一个示例代码:
假设有一个`Person`类,其中有两个字段:`name`和`age`。
```java
public 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;
}
}
```
现在需要根据`name`字段对`List<Person>`进行排序,可以使用以下代码:
```java
List<Person> persons = new ArrayList<>();
persons.add(new Person("Alice", 20));
persons.add(new Person("Bob", 25));
persons.add(new Person("Charlie", 18));
// 根据name字段升序排序
Collections.sort(persons, Comparator.comparing(Person::getName));
// 根据name字段降序排序
Collections.sort(persons, Comparator.comparing(Person::getName).reversed());
```
如果需要根据多个字段进行排序,可以使用`thenComparing`方法。例如,根据`age`字段升序排序,如果`age`相同,则根据`name`字段升序排序:
```java
// 根据age字段升序排序,如果age相同,则根据name字段升序排序
Collections.sort(persons, Comparator.comparing(Person::getAge).thenComparing(Person::getName));
```
阅读全文