博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
List分组 用于客服对话分组场景
阅读量:4689 次
发布时间:2019-06-09

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

工作用可能会用到会话分组:

Message是消息实体对象,里面有toId和fromId 指明接收方ID和发送方Id,通过组合形式“12-22-” 为map的key

public  Map
> groupList(List
list){ //定义一个map集合用于分组 Map
> mapList = new HashMap
>(); //遍历集合以message的 toId和fromId组合为键,以message为值保存到mapList中 for (Iterator it = list.iterator(); it.hasNext();){ //将循环读取的结果放入对象中 Message message = (Message) it.next(); //如果在这个map中包含有相同的键,这创建一个集合将其存起来 if (mapList.containsKey(message.getToId()+"-"+message.getFromId()+"-")){ List
syn = mapList.get(message.getToId()+"-"+message.getFromId()+"-"); syn.add(message); }else if(mapList.containsKey(message.getFromId()+"-"+message.getToId()+"-")){ List
syn = mapList.get(message.getFromId()+"-"+message.getToId()+"-"); syn.add(message); } else {//如果没有包含相同的键,在创建一个集合保存数据 List
newList = new ArrayList
(); newList.add(message); mapList.put(message.getFromId()+"-"+message.getToId()+"-", newList); } } return mapList; }

 

其中Message结构为:

public class Message {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    @Column(name="ID",nullable = false)    private Long id;//主键ID    @Column(name="ToID",nullable = false)    private Long toId;//接收方UserId    @Column(name="FromId",nullable = false)    private Long fromId;//发送方UserID    @Column(name="Content",nullable = true) private String content;//消息内容 @Column(name="Status",nullable = false) private String status;//状态:unread未读,read 已读 @Column(name="AddTime",nullable = false) private Timestamp addTime;//添加时间  get/set……方法省略

转载于:https://www.cnblogs.com/dwb91/p/6483421.html

你可能感兴趣的文章
【程序猿】2016年自己的十年计划篇
查看>>
mysql 双主复制 centos7
查看>>
数据库测试题
查看>>
雷林鹏分享:Ruby 发送邮件 - SMATP
查看>>
TCP连接、Http连接与Socket连接
查看>>
centos7当中的systemd及systemctl(节选)
查看>>
php中函数的类型提示和文件读取功能
查看>>
介绍PS大局观很不错的转文
查看>>
Java并发编程的艺术(一)并发编程的挑战
查看>>
【jQuery】jQuery操作<input>的聚焦与全选其内容
查看>>
【ACM-ICPC 2018 徐州赛区网络预赛】E. End Fantasy VIX 血辣 (矩阵运算的推广)
查看>>
吴昊品游戏核心算法 Round 17 —— M*N PUZZLE 与 N PUZZLE 的解的唯一性定理(由特殊到一般)...
查看>>
弹出消息框并且转向到上/下页
查看>>
初学knockoutjs记录5——Computed observables依赖监控(2 Writable computed observables可写计算监控属性)...
查看>>
python多线程
查看>>
应用实战:从Redis到Aerospike,我们踩了这些坑
查看>>
雷林鹏分享:C# 事件(Event)
查看>>
2.Yum仓库优化
查看>>
Docker 学习5 Docker容器网络
查看>>
Linux JSP连接MySQL数据库
查看>>