1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java 指定字段排序规则_Java之对List里面的元素实现按指定字段排序的方法

java 指定字段排序规则_Java之对List里面的元素实现按指定字段排序的方法

时间:2021-12-17 10:10:37

相关推荐

java 指定字段排序规则_Java之对List里面的元素实现按指定字段排序的方法

摘要:

在日常开发中,经常会用到排序算法,这里记录下日常使用比较多的排序方法,其中包括按指定指定:正序、倒序排序,还有按自定义字段排序的方法,方便日后查看;

一:按指定字段排序,默认倒序,如下写法:

/**

* @description 对List集合按指定字段排序,默认倒序

* @author zhaoxinguo

* @date /12/26

*/

private void sortList(List> platformDataStatistics) {

platformDataStatistics.sort(new Comparator>() {

@Override

public int compare(Map o1, Map o2) {

BigDecimal divideResult2 = (BigDecimal) o2.get("divideResult");

BigDecimal divideResult1 = (BigDecimal) o1.get("divideResult");

return pareTo(divideResult1);

}

});

}

二:按自定义顺序排序,如下写法(JDK1.8之前通过匿名内部类的实现方式):

/**

* @description 自定义排序规则,默认:京东、天猫、拼多多

* @author zhaoxinguo

* @date /2/3

*/

private void customSortList(List> platformDataStatistics) {

// JDK1.8之前通过匿名内部类的实现方式

//这里的顺序,是我自己定义的一个List

String[] regulation = {"京东","天猫","拼多多"};

final List regulationOrder = Arrays.asList(regulation);

Collections.sort(platformDataStatistics, new Comparator>() {

@Override

public int compare(Map o1, Map o2) {

String websiteName1 = (String) o1.get("websiteName");

String websiteName2 = (String) o2.get("websiteName");

int io1 = regulationOrder.indexOf(websiteName1);

int io2 = regulationOrder.indexOf(websiteName2);

return (io1 == -1 || io2 == -1) ? (io2 - io1) : (io1 - io2);

}

});

}

三:按自定义顺序排序,如下写法(JDK1.8之后使用Lambda表达式的基本排序实现方式):

/**

* @description 自定义排序规则,默认:京东、天猫、拼多多

* @author zhaoxinguo

* @date /2/3

*/

private void customSortList(List> platformDataStatistics) {

// JDK1.8之后使用Lambda表达式的基本排序

List regulationOrder = Arrays.asList("通知公告", "信息公示", "机关党建", "部门工作", "个性办公", "涉台舆情", "会议纪要", "学习园地", "机关文化", "下载专区", "通讯录", "安全邮件");

platformDataStatistics.sort(paring(e -> regulationOrder.indexOf(e.get("NAME").toString())));

}

以上就是经常使用的排序方法。

注意:本文归作者所有,未经作者允许,

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。