java list集合根据某个string类型的字段实现自定义排序的代码
时间: 2023-05-22 10:03:01 浏览: 231
可以使用Comparator来实现:
```java
// 定义一个Person类
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;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
// 根据name字段进行排序
Comparator<Person> comparator = Comparator.comparing(Person::getName);
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 20));
people.add(new Person("Bob", 25));
people.add(new Person("Charlie", 18));
Collections.sort(people, comparator);
System.out.println(people);
// 输出:[Person{name='Alice', age=20}, Person{name='Bob', age=25}, Person{name='Charlie', age=18}]
```
这里使用了Comparator.comparing方法,接收一个Function作为参数,用于提取对象中的比较值。在这个例子中,我们提取了Person对象的name属性作为比较值。然后使用Collections.sort方法进行排序,传入Comparator作为参数。
阅读全文