栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

Java8新特性--实现父子三级树形结构

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java8新特性--实现父子三级树形结构

原型及输出效果
  • 原型-(品牌-大类-图片)三级对应关系

  • 输出效果-父子三级树形结构并保证其顺序
代码实现
  • –实体类–
@Data
public class ScreenGuidanceVO {

    
    private String brandName;

    
    private String modelName;

	
    private String pictureUrl;
}
  • –逻辑层–
//返回格式
JSONArray js = new JSONArray();
//1. 查库-列表如原型图所示
List screenGuidanceList = service.getXXXList(screenGuidanceVO);
//分组保留原有顺序-(按BrandName分组,并保留其原有顺序)
Map> lists = screenGuidanceList.stream().collect(Collectors.groupingBy(ScreenGuidanceVO::getBrandName,LinkedHashMap::new,Collectors.toCollection(ArrayList::new)));

//遍历
for (Map.Entry> entry : lists.entrySet()) {
    JSONObject brandObject = new JSONObject();
    //获取list集合
    List value = entry.getValue();
    //获取key值
    String keys = entry.getKey();

    brandObject.put("brandName",keys);

    JSONArray modelArray = new JSONArray();

    //Map> modelList = value.stream().collect(Collectors.groupingBy(ScreenGuidanceVO::getModelName));--未保证其顺序
    //保持原有顺序-(LinkedHashMap按插曲顺序排序)
    Map> modelList = value.stream().collect(Collectors.groupingBy(ScreenGuidanceVO::getModelName,LinkedHashMap::new,Collectors.toCollection(ArrayList::new)));

    for (Map.Entry> modelEntry : modelList.entrySet()) {
        JSONObject modelObject = new JSONObject();
        //获取list集合
        List modelValue = modelEntry.getValue();

        //获取key值
        String modelKey = modelEntry.getKey();
        modelObject.put("modelName",modelKey);
        //获取中下游点字段的集合
        List downNo = modelValue.stream().map(ScreenGuidanceVO::getPictureUrl).distinct().collect(Collectors.toList());
        modelObject.put("pictureList",downNo);
        modelArray.add(modelObject);
    }
    brandObject.put("modelList",modelArray);
    js.add(brandObject);
}
写在最后
  • 省市区父子三级树形结构,也可按照此逻辑实现,json拼接逻辑可按照各自需求自行拼接。
  • 如有不足之处或更好解决方案,请大佬批评示下!
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1039306.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号