如何免费搭建自己的网站,网站 改版,做绿化生意有什么网站,甘肃省建设局网站首页问题描述#xff1a; 应用场景和需求#xff1a;对一个树状结构的数据#xff0c;进行CRUD 时#xff0c;想筛选出 树状结构数据中存在变动的部分。
操作步骤
准备需要的数据#xff1a; 1.先拿到 你原来的树状结构数据 2.再筛选出 需要保留的数据集合id#xff0c;也…问题描述 应用场景和需求对一个树状结构的数据进行CRUD 时想筛选出 树状结构数据中存在变动的部分。
操作步骤
准备需要的数据 1.先拿到 你原来的树状结构数据 2.再筛选出 需要保留的数据集合id也就是对应的CRUD数据id
/*** 树形筛选查找* param treeDtoList 树形集合* param idList 筛选条件(可以是其他条件)* return 包含的节点数据*/public static ListDocumentCatalogue screenTree(ListDocumentCatalogue treeDtoList, ListString idList){//最后返回的筛选完成的集合ListDocumentCatalogue screeningOfCompleteList new ArrayList();if (treeDtoList.size()0 idList.size()0 ){for (DocumentCatalogue DocumentCatalogue : treeDtoList){//获取子集 数据ListDocumentCatalogue subsetList DocumentCatalogue.getChildren();//递归筛选完成后的返回的需要添加的数据DocumentCatalogue addTreeDto getSubsetPmsPlanPo(DocumentCatalogue,subsetList,idList);//如果筛选完的数据 不为空则添加到 返回的集合中if (addTreeDto!null){screeningOfCompleteList.add(addTreeDto);}}return screeningOfCompleteList;}return null;}递归筛选 /*** 筛选符合的集合并返回* param DocumentCatalogue 树形类* param subsetTreeDtoList 子集集合* param idList 筛选条件* return 筛选成功的类*/public static DocumentCatalogue getSubsetPmsPlanPo(DocumentCatalogue DocumentCatalogue,ListDocumentCatalogue subsetTreeDtoList,ListString idList){//作为筛选条件的判断值也就是拿到 当前子集的idString id DocumentCatalogue.getId();//判断当前 树状结构是否还存在子集如果存在则继续向下递归查找if (subsetTreeDtoList.size()0 ){ListDocumentCatalogue addTreeDtoList new ArrayList();for (DocumentCatalogue subsetTreeDto : subsetTreeDtoList){//拿到子集ListDocumentCatalogue subsetList subsetTreeDto.getChildren();//继续向下向下递归查找DocumentCatalogue newTreeDto getSubsetPmsPlanPo(subsetTreeDto,subsetList,idList);//当子集筛选完不为空时添加if (newTreeDto!null){addTreeDtoList.add(newTreeDto);}}//子集满足条件筛选时集合不为空时替换对象集合内容并返回当前对象if (addTreeDtoList.size()0){DocumentCatalogue.setChildren(addTreeDtoList);return DocumentCatalogue;//当前对象子集对象不满足条件时判断当前对象自己是否满足筛选条件满足设置子集集合为空并返回当前对象}else if (addTreeDtoList.size()0 idList.contains(id)){DocumentCatalogue.setChildren(null);return DocumentCatalogue;}else {//未满足筛选条件直接返回空数据return null;}}else {//不存在子集时判断当前对象是否满足筛选条件也就是是否满足有CRUD操作的数据if (idList.contains(id)){return DocumentCatalogue;}else {return null;}}}