如何对List<PjtSelectMstrInfo> pjtSelectMstrInfoList =....按照PjtSelectMstrInfo中usrId,usrNameJp,usrNameEn的顺序排序
时间: 2024-10-15 19:21:20 浏览: 14
Easypay保函控制开发文档.pdf
如果你想按照`PjtSelectMstrInfo`中的usrId、usrNameJp(日文名),然后usrNameEn(英文名)的顺序对`List<PjtSelectMstrInfo>`进行排序,你可以使用Java的Collections.sort()方法,配合Comparator接口来自定义排序规则。以下是一个简单的示例:
```java
import java.util.*;
// 假设PjtSelectMstrInfo类有usrId, usrNameJp和usrNameEn属性
class PjtSelectMstrInfo implements Comparable<PjtSelectMstrInfo> {
private int usrId;
private String usrNameJp;
private String usrNameEn;
// getters和setters省略
@Override
public int compareTo(PjtSelectMstrInfo other) {
// 按照usrId,usrNameJp,usrNameEn的顺序比较
return Comparator.comparingInt(this::getUsrId)
.thenComparing(this::getUsrNameJp, String.CASE_INSENSITIVE_ORDER)
.thenComparing(this::getUsrNameEn, String.CASE_INSENSITIVE_ORDER)
.compare(this, other);
}
}
List<PjtSelectMstrInfo> pjtSelectMstrInfoList = ...; // 待排序的列表
Collections.sort(pjtSelectMstrInfoList);
```
这段代码首先实现了Comparable接口,覆盖了compareTo方法,该方法会根据usrId、usrNameJp和usrNameEn依次进行比较。然后使用Collections.sort()函数对列表进行排序。
如果你的环境不支持直接在List上排序,也可以先转换为ArrayList,然后再调用sort()方法:
```java
List<PjtSelectMstrInfo> sortedList = new ArrayList<>(pjtSelectMstrInfoList);
sortedList.sort(Comparator.comparingInt(PjtSelectMstrInfo::getUsrId)
.thenComparing(PjtSelectMstrInfo::getUsrNameJp, String.CASE_INSENSITIVE_ORDER)
.thenComparing(PjtSelectMstrInfo::getUsrNameEn, String.CASE_INSENSITIVE_ORDER));
```
阅读全文