【问题标题】:Sorting List<> in Java [closed]Java中的排序列表<> [关闭]
【发布时间】:2020-04-27 09:59:11
【问题描述】:
我有一个List<Person>。 Person 的属性是 String name、String secondName、int phoneNum。
如何按字符串属性 secondName 对该列表进行排序?
我尝试将上一个列表中的数据移至另一个 List<String>,将 secondName 移动到第一个位置,然后应用 Collection.sort 并创建其他 List<Person>,列表的数据已排序,但它太复杂了。
【问题讨论】:
标签:
java
string
list
sorting
【解决方案1】:
Java 8 在 List 接口中引入了一种可以使用比较器的排序方法。
如果你有 secondName 的 getter,你可以这样做:
myList.sort(Comparator.comparing(Person::getSecondName));
如果您没有 getter,请使用这个:
myList.sort(Comparator.comparing((person)->(person.secondName)));
更多方法和答案:
link
【解决方案2】:
假设这里是你的 Pojo 类人。
class Person{
String name;
String secondName;
//Getter and setters
}
然后按 java 集合 API 本身对列表进行排序。
java.util.Collections.sort(personList, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getSecondName().compareToIgnoreCase(o2.getSecondName());
}
});