树形列表结构
命题要求:将如下表中前两个数字字符相同的,并且后两个不为00的归为在00的子节点,形成树形结构
核心源码:
private List<TypeTree> listToTree(List<Integer> typeNumList,List<TypePolicy> list , int pid ){ List<TypeTree> typeTrees = new ArrayList<>(); for(int i = 0 ; i<list.size() ; i++) { if (list.get(i).getPid() == pid) { TypeTree typeTree = new TypeTree(); typeTree.setId(list.get(i).getId()); typeTree.setLabel(list.get(i).getType()+"("+typeNumList.get(i)+")"); typeTree.setChildren(listToTree(typeNumList,list,list.get(i).getId())); typeTrees.add(typeTree); } } return typeTrees; }
这里我用到了递归的思想
最终效果