public static List<BDocument> findChildren(List<BDocument> documents, Long parentId) { Map<Long, BDocument> personMap = new HashMap<>(); for (BDocument p : documents) { personMap.put(p.getId(), p); } List<BDocument> children = new ArrayList<>(); for (BDocument p : documents) { if (p.getPid() != null && p.getPid().equals(parentId)) { children.add(p); findChildrenRecursively(personMap, p, children); } } return children; } private static void findChildrenRecursively(Map<Long, BDocument> documentMap, BDocument parent, List<BDocument> children) { Long currentParentId = parent.getId(); for (BDocument p : documentMap.values()) { if (p.getPid() != null && p.getPid().equals(currentParentId)) { children.add(p); findChildrenRecursively(documentMap, p, children); } } }
04-18
591
03-15
672
04-22