java 集合按照某个字段排序 简便写法
时间: 2023-09-23 18:04:32 浏览: 61
在Java 8及以上版本中,可以使用lambda表达式和Stream API来对集合进行排序,非常简便。例如,如果我们有一个List<Person>,其中Person类有一个age属性,我们想按照age从小到大排序,可以这样写:
```
list.sort(Comparator.comparingInt(Person::getAge));
```
其中,list是我们要排序的List,Person::getAge表示获取Person对象的age属性值作为比较依据,Comparator.comparingInt()则表示按照整数大小进行比较。如果我们想按照age从大到小排序,可以这样写:
```
list.sort(Comparator.comparingInt(Person::getAge).reversed());
```
其中,reversed()表示反转比较顺序。除了按照整数大小比较,我们还可以使用其他比较器,例如按照字符串大小比较:
```
list.sort(Comparator.comparing(Person::getName));
```
这样就可以按照Person对象的name属性从小到大排序了。
相关问题
Java list按照某个字段排序
要按照 Java List 中的某个字段进行排序,可以使用 `Collections.sort()` 方法并传入一个 `Comparator` 对象来实现。以下是一个示例代码:
假设有一个 `Person` 类,其中包含姓名(`name`)和年龄(`age`)两个字段:
```
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;
}
}
```
现在有一个 `List<Person>` 类型的列表,需要按照年龄字段进行排序,可以按照以下步骤进行:
1. 创建一个 `Comparator` 对象,用于比较两个 `Person` 对象的年龄字段,并返回比较结果:
```
Comparator<Person> ageComparator = new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
return Integer.compare(p1.getAge(), p2.getAge());
}
};
```
2. 调用 `Collections.sort()` 方法,并传入列表和上面创建的 `Comparator` 对象:
```
List<Person> personList = new ArrayList<>();
// 添加若干个 Person 对象到列表中
Collections.sort(personList, ageComparator);
```
这样就可以将列表中的 `Person` 对象按照年龄字段进行升序排序。如果需要进行降序排序,只需要将 `compare()` 方法中的返回值取反即可。
java list对象集合按照px字段排序
可以使用Java中的Collections.sort(List<T> list, Comparator<? super T> c)方法来进行排序。具体的操作是实现Comparator接口并重写compare方法,比较px字段的大小,然后传入该实现类的对象作为Collections.sort()方法的第二个参数,即可完成按照px字段排序的操作。