IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> list构建数据库父子关系 -> 正文阅读

[大数据]list构建数据库父子关系

作者:recommend-item-box type_blog clearfix

list构建数据库父子关系

递归解决父子表伪代码

@Override
public List<ConsumablesDTO> getAll() {
	//数据库中获取所有的数据
    List<ConsumablesDTO> consumablesDOS = BeanUtils.deepClone(generalBeanService.queryList(new ConsumablesDO()),ConsumablesDTO.class);
    //默认根是0
    ConsumablesDTO head = new ConsumablesDTO(0);
    return getNode(consumablesDOS,head);
}

private List<ConsumablesDTO> getNode(List<ConsumablesDTO> list, ConsumablesDTO node){
    List<ConsumablesDTO> dtoList = list.stream().filter(a -> node.getId().equals(a.getParentId())).collect(Collectors.toList());
    if (CollectionUtils.isEmpty(dtoList)) return Collections.emptyList();
    dtoList.forEach(dto -> dto.setConsumablesParentDTOS(getNode(list,dto)));
    return dtoList;
}

for循环list建立树形图伪代码

public List<User> listToTree1() {
    List<User> list = list();
    List<User> tree = new ArrayList<>();
    for (User user : list) {
        //找到根节点
        if (user.getParentId() == null || user.getParentId().equals(0L)) {
            tree.add(user);
        }
        List<User> children = new ArrayList<>();
        //再次遍历list,找到user的子节点
        for (User node : list) {
            if (node.getParentId().equals(user.getId())) {
                children.add(node);
            }
        }
        user.setChildren(children);
    }
    return tree;
}

for循环list建立树形图(MAP)伪代码

//首先将获取到的List数据转换为Map集合
List userList=new ArrayList<>();
Map<String,User> map = userList.stream().collect(Collectors.toMap(User::getId,User->User));
//便利集合,进行匹配
map.forEach((k,v)->{
//如果根据pid能改查询到对应对象,证明存在父级,将该对象add进子级集合
User user = map.get(v.getPid());
if(user!=null){
user.getChildren().add(user);
}
});
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:03:34  更:2021-10-17 12:04:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:46:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码