博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
List对象分组排序算法
阅读量:6648 次
发布时间:2019-06-25

本文共 2525 字,大约阅读时间需要 8 分钟。

 场景:

  List里面的对象是订单的节点,比如我们快递的物流状态,这个是需要有序的,所以需要根据订单号进行分组排序。

 

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;public class GroupSortTest {    public static void main(String[] args) {            List
list = new ArrayList
(); Order o1 = new Order("10086","3",(long) 1008603); Order o2 = new Order("10086","2",(long) 1008602); Order o3 = new Order("10086","1",(long) 1008601); Order o4 = new Order("10010","1",(long) 1001001); Order o5 = new Order("10000","3",(long) 1000003); Order o6 = new Order("10010","3",(long) 1001003); Order o7 = new Order("10000","1",(long) 1000001); Order o8 = new Order("10000","2",(long) 1000002); Order o9 = new Order("10010","2",(long) 1001002); list.add(o1); list.add(o2); list.add(o3); list.add(o4); list.add(o5); list.add(o6); list.add(o7); list.add(o8); list.add(o9); Map
> map = OrderSortByGroup(list); for(Map.Entry
> entry : map.entrySet()){ for(Order o : entry.getValue() ){ System.out.println(entry.getKey() +"--"+o.getSeq()+"--"+o.getStatusId()); } } } public static Map
> OrderSortByGroup(List
list){ Map
> map = new HashMap
>(); for(Order order : list) { List
staList = map.get(order.orderNo); if(staList==null){ staList = new ArrayList
(); } Order od = new Order(); od.setSeq(order.seq);od.setStatusId(order.statusId); staList.add(od); Collections.sort(staList, new Comparator
() { @Override public int compare(Order o1, Order o2) { return o1.getSeq().compareTo(o2.getSeq()); } }); map.put(order.orderNo, staList); } return map; } }class Order { String orderNo; //订单号 String seq; //订单节点序号 Long statusId; //订单节点主键 public Order() {} public Order(String orderNo, String seq, Long statusId) { super(); this.orderNo = orderNo; this.seq = seq; this.statusId = statusId; } public String getOrderNo() { return orderNo; } public void setOrderNo(String orderNo) { this.orderNo = orderNo; } public String getSeq() { return seq; } public void setSeq(String seq) { this.seq = seq; } public Long getStatusId() { return statusId; } public void setStatusId(Long statusId) { this.statusId = statusId; }}

 

转载于:https://www.cnblogs.com/jager/p/6072987.html

你可能感兴趣的文章
上车是什么意思_“上车饺子下车面”,是什么意思?看完心里暖暖的
查看>>
anaconda安装python3消失_Python学习第47课-安装Python以及anaconda介绍
查看>>
centos7中编译安装nodejs_Docker(一)CentOS7中安装Docker视频教程
查看>>
ug装配绕轴旋转_UG模具设计培训就到新科教育
查看>>
服务器闪退_马洛斯服务器|高端玩家游戏建议
查看>>
linux7 udev eth,CENTOS 7 udev:renamed network interface eth0 to eth1 eno16777736
查看>>
五子棋对弈程序c语言,五子棋程序纯C语言版.doc
查看>>
c语言二维数组程序实例讲解,C语言二维数组的处理实例
查看>>
c语言程序报告函数关系描述,《C语言程序设计》实验报告
查看>>
c语言while(scanf =eof),while(scanf("%d",&n)!=EOF)
查看>>
计算机二级c语言编程题评分标准,计算机二级C语言题型和评分标准
查看>>
c语言自定义函写计算器,C语言实现计算器功能
查看>>
C语言猜电脑随机数源代码,c语言(随机数)的问题
查看>>
鸿蒙os相机,鸿蒙os有什么功能-有什么特殊之处
查看>>
微信html5图片裁切,微信小程序图片裁剪工具we-cropper
查看>>
小学生学计算机flash,利用Flash软件进行小学电脑绘画教学
查看>>
html form 与table,form和table的区别
查看>>
【原创】MySQL 模拟Oracle邻接模型树形处理
查看>>
SSD上如何进行数据保护?
查看>>
Verizon:2012年数据破坏调查报告
查看>>