avatar

快速将数据封装成树形代码

代码展示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*
list : 要封装成树的集合数据
Resource1 : 集合中封装的实体类
getParent : 实体类中的字段的get方法
=左边建议自动生成
当前行的作用是根据实体类中的指定字段将数据进行分类,分类后的数据将储存到map中
*/
Map<String, List<Resource1>> map = list /* list是要进行封装的集合 */ .stream().collect(Collectors.groupingBy(Resource1 /* 集合中存储数据所对应的实体类 */ ::getParent /* 根据字段进行分类 */));
/*
resource : 集合中存储的实体类数据
map.get(resource.getId()) : 通过实体类中与分类字段对应的字段获取到子集数据
循环集合,根据实体类中与分类字段对应的字段将数据存储成树形
*/
list.forEach(resource -> resource.setChildren(map.get(resource.getId())));
/*
v.getParent().equals("0") || v.getParent().equals("") : 字段条件
根据字段条件取到指定的集合数据,并重新赋值给集合
*/
list = list.stream().filter(v-> v.getParent().equals("0") || v.getParent().equals("")).collect(Collectors.toList());
文章作者: 123
文章链接: https://gao5805123.github.io/123/2020/08/04/%E5%BF%AB%E9%80%9F%E5%B0%86%E6%95%B0%E6%8D%AE%E5%B0%81%E8%A3%85%E6%88%90%E6%A0%91%E5%BD%A2%E4%BB%A3%E7%A0%81/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 123
打赏
  • 微信
    微信
  • 支付宝
    支付宝