问题描述

现在有这样一个TestNotification里面定义了这些字段

private long time;

private String pkg;

private String content;

private String title;

然后我需要将这些字段里面的pkg也就是PackageName分组,可能有音乐包名的,新闻包名的各种应用发来的不同消息,我需要将这些消息根据相同的包名来分组,目前可以将整个集合里面的数据用map分组。

private ArrayList notificationArrayList = new ArrayList<>();

//添加消息,转换组

public void addGroupItem(TestNotification notification) {

//添加数据

notificationArrayList.add(notification);

//转换map

Map> resultMap = new LinkedHashMap<>();

for (TestNotification testN : notificationArrayList) {

String pkg = testN.getPkg();

if (resultMap.containsKey(pkg)) {

resultMap.get(pkg).add(testN);

} else {

List tmp = new LinkedList<>();

tmp.add(testN);

resultMap.put(pkg, tmp);

}

}

//遍历map

for (String key : resultMap.keySet()) {

//将key信息放入分组的头部

Level0Item level0Item = new Level0Item(key, "---聚合---");

List notificationList = resultMap.get(key);

//遍历key下面的各个value

for (TestNotification testNotification : notificationList) {

//将key下面的value加入可折叠列表的子类中

level0Item.addSubItem(new Level1Item(testNotification.getTitle(),

testNotification.getPkg(), testNotification.isExpandItem(), testNotification.getContent()));

}

entityList.add(level0Item);

}

//为recyclerView设置数据源,通知刷新界面

setNewData(entityList);

}

希望能够解决的问题:

目前这样做,只能每次将所有的消息实体类遍历,然后每次为recyclerView设置新的数据源,导致已经展开的item,每次刷新都会重新合上。有什么好的排序方式,能够让我单处刷新新来的一条TestNOtification,而不需要每次全部遍历?

用java实现动态排序_关于Java动态分组排序的问题(Android中需要将数据排序给RecyclerView使用)...相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java map 值排序_使用Java8 Stream API对Map类型按照键或值进行排序

    在这篇文章中,您将学习如何使用Java对Map按照键或值进行排序.前几日有位朋友面试遇到了这个问题,看似很简单的问题,但是如果不仔细研究一下也是很容易让人懵圈的面试题.所以我决定写这样一篇文章.在Ja ...

  3. java数组给名字排序_用Java给数组排序

    public class BubbleDemo { public static void main(String[] args) { int arr[]={1,3,5,7,2,4,6,8,9}; bu ...

  4. java动态类加载_实现Java动态类载入机制

    作 为 充 分 利 用Java 的 动 态 类 载 入 机 制 的 最 好 例 子, 带 有Java 扩 展 的Web 浏 览 器 根 据 请 求 从 网 络 或 本 地 文 件 系 统 中 动 态 ...

  5. java打印星型_初识java java入门知识 基础知识 打印各种星型图形 源代码

    今天给大家带来的是初级Java基础部分的知识:包括初识Java.变量.常量.数据类型.运算符.各种选择结构.循环结构.数组等Java的基础语法部分!最后还有****循环结构的进阶****,步骤超详细, ...

  6. java是什么格式_是java格式

    错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...

  7. Java异常处理深入理解_关于java异常处理机制的深入理解.doc

    关于java异常处理机制的深入理解.doc 关于JAVA异常处理机制的深入理解1引子TRYCATCHFINALLY恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过 ...

  8. java集合类详解_【Java入门提高篇】Day20 Java集合类详解(三)List接口

    今天要说的是Collection族长下的三名大将之一,List,Set,Queue中的List,它们都继承自Collection接口,所以Collection接口的所有操作,它们自然也是有的. Lis ...

  9. java 实现部门树_(java实现)哈夫曼(Huffman)树编码(自编压缩项目基础)

    哈夫曼树 给定 n 个权值作为 n 个叶子结点,构造一棵二叉树, 若该树的带权路径长度(wpl) 达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree), 也叫霍夫曼树. 哈 ...

最新文章

  1. android:更改PagerTabStrip背景颜色,标题字体样式、颜色和图标,以及指示条的颜色...
  2. lifekeeper for linxu安装步骤
  3. 实践人生 —— 一个普通IT人的十年回顾(下)
  4. Python基础----python的使用(二)
  5. 消灭 Java 代码的“坏味道”【转】
  6. DICOM文件格式与编程(转)
  7. 多快好省的预训练模型:你丢我也丢
  8. Django里URL配置中name参数的作用
  9. 永洪BI到底有多好用?知乎大V用3000字力荐
  10. BPF类型格式BTF
  11. 计算机与代数---如何计算log---方法推理[1]
  12. 以前的java游戏平台_手机游戏平台java游戏经典的五款游戏回顾!
  13. 【Set】01-set参数
  14. Access denied for user ‘xxx‘@‘localhost‘ 错误
  15. 用html写QQ音乐首页,使用HTML5仿制的QQ音乐PC版界面
  16. 关于弹出消息窗口的自动关闭
  17. windows7 python 指定源组播 10049_试图绑定到特定的外部ip :: [Errno 10049]请求的地址在其上下文中无效无法打开socket-(python 2.7)...
  18. 魔兽世界任务制作教学
  19. 【制作脑图】万彩脑图大师教程 | 卸载万彩脑图大师
  20. 能量守恒及概念推导---伯克利物理读书笔记

热门文章

  1. gcc之UTF-8编码
  2. 限制文本输入框只能输入0-9数字
  3. 【干货】数字经济时代的新思考:企业如何进行数字化转型及如何称为数据驱动型企业?...
  4. 【干货】私域电商崛起:2021见实私域流量白皮书高清6月版.pdf(附下载链接)...
  5. 【报告分享】To B企业如何玩转视频号.pdf(附下载链接)
  6. 【文末福利】算法大赛评委共话技术趋势,这场直播值得一看!
  7. 4000字超干货!《统计学习方法》啃书指南
  8. 安卓 时间服务器_官方都被惊动!LOL手游日本服务器挤到瘫痪,IOS不得不推迟...
  9. 西瓜书+实战+吴恩达机器学习(六)监督学习之逻辑回归 Logistic Regression
  10. 决策树Decision Tree+ID3+C4.5算法实战