网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

java--list转树形结构-创新互联

java–list转树形结构

1. 双重循环

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网页空间、营销软件、网站建设、同仁网站维护、网站推广。

2. 递归

3. Stream()

1. 双重循环

@Override
	public List
getAddressTree1() {// 获取数据库中的所有address数据 List
list = this.baseMapper.getAddressTree(); // 返回的树形数据 List
tree = new ArrayList
(); // 第一次遍历 for (Address address : list) { // 找到根节点,这里我的根节点的pid为0 if (address.getPid().equals("0")) { tree.add(address); } // 定义list用于存储子节点 List
children = new ArrayList
(); // 再次遍历list,找到子节点 for (Address node : list) { // 子节点的pid等于父节点的id if (node.getPid().equals(address.getId())) {children.add(node); } } // 给父节点设置子节点 address.setChildren(children); } return tree; }

2. 递归

@Override
    public List
getAddressTree2() {// 获取数据库中的所有address数据 List
list = this.baseMapper.getAddressTree(); // 返回的树形数据 List
tree = new ArrayList
(); // 第一次遍历 for (Address address : list) {// 找到根节点,这里我的根节点的pid为0 if (address.getPid().equals("0")) {tree.add(findChild(address, list)); } } return tree; } private Address findChild(Address address, List
list) {// 定义list用于存储子节点 List
children = new ArrayList
(); for (Address node : list) {// 找到根节点,这里我的根节点的pid为0 if (node.getPid().equals(address.getId())) {// 调用递归 children.add(findChild(node, list)); } } address.setChildren(children); return address; }

3. Stream()

@Override
    public List
getAddressTree() {// 获取数据库中的所有address数据 List
addresses = this.baseMapper.getAddressTree(); // 操作所有的address数据 // 通过Collectors.groupingBy(Address::getPid)方法对addresses按照Pid进行分组,也就是将pid相同的放在一起 Map>addressMap = addresses.stream().collect(Collectors.groupingBy(Address::getPid)); // 循环addresses,给它设置children属性 addresses.forEach(address ->{address.setChildren(addressMap.get(address.getId())); }); // 现在已经形成了多棵树,最后我们再通过filter()方法挑选出根节点的那颗树即可。 这里我的根节点的pid为0 List
resultList = addresses.stream().filter(item ->item.getPid().equals("0")) .collect(Collectors.toList()); return resultList; }

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站名称:java--list转树形结构-创新互联
标题来源:http://bjjierui.cn/article/ddspgg.html

其他资讯