对list进行分组

news/2024/11/23 9:14:42/
        //对map集合分组List<Map<String, Object>> list = new ArrayList<>();for (int i = 0; i < 20; i++) {Map<String, Object> map = new HashMap<>();map.put("key", (int) (Math.random() * 10));map.put("value", i);list.add(map);}Map<String, List<Map<String, Object>>> collect = list.stream().collect(Collectors.groupingBy(e -> {return e.get("key").toString();}));Iterator<Map.Entry<String, List<Map<String, Object>>>> iterator = collect.entrySet().iterator();while (iterator.hasNext()) {Map.Entry<String, List<Map<String, Object>>> next = iterator.next();List<Map<String, Object>> value = next.getValue();System.out.println("-----------------");for (Map<String, Object> stringObjectMap : value) {System.out.println(stringObjectMap);}}//对实体类进行分组List<SiteEntity> siteEntityList = new ArrayList<>();for (int i = 0; i < 5; i++) {SiteEntity entity = new SiteEntity();entity.setId(i);entity.setName("a" + i);siteEntityList.add(entity);}for (int i = 0; i < 5; i++) {SiteEntity entity = new SiteEntity();entity.setId(i);entity.setName("b" + i);siteEntityList.add(entity);}for (int i = 0; i < 5; i++) {SiteEntity entity = new SiteEntity();entity.setId(i);entity.setName("c" + i);siteEntityList.add(entity);}Map<Integer, List<SiteEntity>> collect1 = siteEntityList.stream().collect(Collectors.groupingBy(SiteEntity::getId));Iterator<Map.Entry<Integer, List<SiteEntity>>> iterator1 = collect1.entrySet().iterator();while (iterator1.hasNext()) {Map.Entry<Integer, List<SiteEntity>> next = iterator1.next();List<SiteEntity> value = next.getValue();System.out.println("-------");value.forEach(e -> System.out.println(e));}//对实体类中的属性进行分组Map<Integer, List<String>> collect2 = siteEntityList.stream().collect(Collectors.groupingBy(SiteEntity::getId, Collectors.mapping(SiteEntity::getName, Collectors.toList())));Iterator<Map.Entry<Integer, List<String>>> iterator2 = collect2.entrySet().iterator();while (iterator2.hasNext()) {Map.Entry<Integer, List<String>> next = iterator2.next();List<String> value = next.getValue();System.out.println("-----------");value.stream().forEach(System.out::println);}}

打印结果

-----------------
{value=6, key=0}
{value=8, key=0}
-----------------
{value=0, key=1}
{value=3, key=1}
{value=5, key=1}
{value=9, key=1}
-----------------
{value=7, key=2}
{value=10, key=2}
{value=17, key=2}
-----------------
{value=2, key=3}
{value=4, key=3}
{value=12, key=3}
{value=15, key=3}
-----------------
{value=18, key=4}
{value=19, key=4}
-----------------
{value=14, key=7}
-----------------
{value=1, key=8}
{value=11, key=8}
{value=13, key=8}
{value=16, key=8}
-------
SiteEntity{id=0, name='a0'}
SiteEntity{id=0, name='b0'}
SiteEntity{id=0, name='c0'}
-------
SiteEntity{id=1, name='a1'}
SiteEntity{id=1, name='b1'}
SiteEntity{id=1, name='c1'}
-------
SiteEntity{id=2, name='a2'}
SiteEntity{id=2, name='b2'}
SiteEntity{id=2, name='c2'}
-------
SiteEntity{id=3, name='a3'}
SiteEntity{id=3, name='b3'}
SiteEntity{id=3, name='c3'}
-------
SiteEntity{id=4, name='a4'}
SiteEntity{id=4, name='b4'}
SiteEntity{id=4, name='c4'}
-----------
a0
b0
c0
-----------
a1
b1
c1
-----------
a2
b2
c2
-----------
a3
b3
c3
-----------
a4
b4
c4Process finished with exit code 0

http://www.ppmy.cn/news/688590.html

相关文章

微信公众号开发之用户分组

具体参照微信官方文档。 创建用户分组 /*** 创建分组* param groupName 分组名* return Integer 分组ID*/ public static Integer createPrizeDrawGroup(String groupName){String url "https://api.weixin.qq.com/cgi-bin/groups/create?access_token"getGlobalT…

List 分组 GroupBy

List也可以和数据表DataTable 一样按照对象的属性进行分组。 首先先穿件一个实体类 Goods 如下&#xff1a; public class Goods{/// <summary>/// 商品编码/// </summary>public string No { get; set; }/// <summary>/// 商品名称/// </summary>pub…

设置分组

这里暂时分成后台、前台 在app目录下 分别创建 admin index 目录 并且在子目录创建如下目录 │ ├─controller 控制器目录 │ ├─model 模型目录 │ ├─view 视图目录 │ ├─ ... 更多类库目录 │ │ │ ├─command.php …

MySQL中的数据分组

数据组&#xff08;group by&#xff09; 可以根据需要将查询到的结果集信息划分为较小的组&#xff0c;用 GROUP BY 子句实现。 一、Group by语法 GROUP BY 子句&#xff1a;GROUP BY 子句可以把表中的行划分为组。然后可以用组函数返 回每一组的摘要信息。 二、 使用分组原则…

对List的数据进行分组

对List的数据进行分组 一&#xff1a;我们平常在工作的时候可能会遇到要对List里面的数据进行分组,在jdk1.8中有方法帮我们解决,而在1.8之前我们要实现这样的功能就需要自己手动实现分组 我们先定义一个User类 public class User {private int id;private String contractNa…

分组+分页...

分组: /* * 1) 先搭建查询架子 select * from stu ---- 分析题干-------------- * 2) 使用 where 排除不参与运算的数据 * 3) 确定那个字段分组 写在 group by 后 * 4) 确定返回的数据 * select 后面的字段要么出现在 group by 后,要么出现在聚合函数中,否…

[Mysql] GROUP BY分组

练习案例数据 DROP TABLE IF EXISTS purchase_info; CREATE TABLE purchase_info( commodity_id VARCHAR(8), category VARCHAR(16), colour VARCHAR(16), purchase_quantity INT, purchase_date DATE ) ENGINE InnoDB DEFAULT CHARSET utf8; INSERT INTO purchas…

微信小程序类ExpandableListView分组实现

效果图 小程序分组实现。 实现 代码结构如下图图&#xff1a; 文件目录说明如下&#xff1a; │ app.js │ app.json │ app.wxss │ project.config.json │ ├─constants │ restApi.js //存放api │ ├─images //图片 │ arrow-down.png …