直接上代码:
运行:
public static void main(String[] args) {
List<ResultVo> resultVos=new ArrayList<>();
List<String> a=new ArrayList<>();
a.add("范增");
a.add("方唐镜");
a.add("范淑女");
a.add("方文山");
a.add("方崇大");
List<String> b=new ArrayList<>();
b.add("白少也");
b.add("白福关");
resultVos.add(new ResultVo("F",a));
resultVos.add(new ResultVo("B",b));
//用lombda表达式重写compare方法------------------这个才是重点
Comparator comparator = Collator.getInstance(Locale.CHINA);
Collections.sort(resultVos, new Comparator<ResultVo>() {
@Override
public int compare(ResultVo o1, ResultVo o2) {
return comparator.compare(o1.getPinYin(), o2.getPinYin());
}
});
JSONObject pinYinJson=new JSONObject();
pinYinJson.put("data",resultVos);
System.out.println(pinYinJson.toString());
}
结果:

实体类:
封装类:
import java.util.List;
public class ResultVo {
private String pinYin;
private List<String> judgeNames;
public ResultVo() {
}
public String getPinYin() {
return pinYin;
}
public void setPinYin(String pinYin) {
this.pinYin = pinYin;
}
public List<String> getJudgeNames() {
return judgeNames;
}
public void setJudgeNames(List<String> judgeNames) {
this.judgeNames = judgeNames;
}
public ResultVo(String pinYin, List<String> judgeNames) {
this.pinYin = pinYin;
this.judgeNames = judgeNames;
}
@Override
public String toString() {
return "ResultVo{" +
"pinYin='" + pinYin + '\'' +
", judgeNames=" + judgeNames +
'}';
}
}
本文介绍了一种使用Java和Lambda表达式实现的拼音排序方法。通过Collator类获取中文拼音排序规则,并应用于自定义的ResultVo类集合排序。该方法提高了中文姓名列表的排序效率和准确性。
614

被折叠的 条评论
为什么被折叠?



