조립 트 리 구조 데이터 기능 패키지
/**
*
* @param
* @return
*/
public static List buildTree(List list) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException, IntrospectionException {
List trees = new ArrayList<>();
for (T treeNode : list) {
Method method = treeNode.getClass().getDeclaredMethod("getParentId", null);
Object value = method.invoke(treeNode, null);
if ("0".equals(String.valueOf(value))) {
trees.add(findChildren(treeNode,list));
}
}
return trees;
}
public static T findChildren(T t,List treeNodes) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, IntrospectionException {
Method getIdMethod = t.getClass().getDeclaredMethod("getId");
String id = String.valueOf(getIdMethod.invoke(t, null));
for (T it : treeNodes) {
Method getParentIdMethod = it.getClass().getDeclaredMethod("getParentId");
Object parentId = getParentIdMethod.invoke(it, null);
if (id.equals(String.valueOf(parentId))) {
Method getChildrenMethod = t.getClass().getDeclaredMethod("getChildren");
Object children = getChildrenMethod.invoke(t, null);
if (null == children ) {
Method setChildrenMethod = t.getClass().getDeclaredMethod("setChildren",HashSet.class);
setChildrenMethod.invoke(t, new HashSet());
}
((HashSet)getChildrenMethod.invoke(t, null)).add(findChildren(it, treeNodes));
}
}
return t;
}
소결: 이상 은 봉 인 된 도구 류 입 니 다. 본 블 로 그 는 필기 만 배우 고 사용 할 뿐 입 니 다. 여러분 은 더 좋 은 아이디어 가 있 으 면 교 류 를 환영 합 니 다. 스프 레이 를 멀리 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
조립 트 리 구조 데이터 기능 패키지선언: 지난 블 로 그 는 실체 TreeNode 에 대해 트 리 구 조 를 조립 하 는 데 만 침 을 놓 았 기 때문에 실제 개발 에서 우 리 는 데이터 시트 에 대응 하 는 많은 실 체 를 만들어 데 이 터 를 적...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.