原始数据(id , 别名,库名,实例 IP ,实例端口,组名,项目名) [ (15, '192.168.0.4', 'test', '192.168.0.4', 3306, '组 A', '项目 A'), (15, '192.168.0.4', 'bs2022720', '192.168.0.4', 3306, '组 A', '项目 A'), (15, '192.168.0.4', 'aaaxxx', '192.168.0.4', 3306, '组 A', '项目 A'), (15, '192.168.0.4', 'test22', '192.168.0.4', 3306, '组 A', '项目 A'), (15, '192.168.0.4', 'test22', '192.168.0.4 ', 3306, '组 B', '项目 A'), (28, '[dev]192.168.0.5', 'test ', '192.168.0.5', 3306, '组 C', '项目 B'), (28, '[dev]192.168.0.5', 'iam', '192.168.0.5', 3306, '组 C', '项目 B') ]
如何能快速实现返回类似如下 json 格式: 即: 项目-组-实例-库 { '项目 A': [{ '组 A': [{ '192.168.0.4:3306': [{ 'schema': 'test' }, { 'schema': 'bs2022720' }, { 'schema': 'aaaxxx' }, { 'schema': 'test22' }] }], '组 B': [{ '192.168.0.4 :3306': [{ 'schema': 'test22' }] }] }], '项目 B': [{ '组 C': [{ '192.168.0.5:3306': [{ 'schema': 'test ' }, { 'schema': 'iam' }] }] }] }
1
workOrNot 2023-01-06 10:34:47 +08:00
列表.parallelStream().collect(Collectors.groupingBy("项目名")).entrySet().parallelStream().collect(Collectors.groupingBy("组名"))
|
2
nitmali 2023-01-06 11:45:58 +08:00
list.stream().collect(Collectors.groupingBy(Bean::getProjectName, Collectors.groupingBy(Bean::getGroupName)));
|
3
leipengcheng 2023-01-06 15:58:04 +08:00
感谢,最近正好需要这个
|