數據結構:id,name.......,pid;
根據id和pid生成樹
/** * @clc * @param listMoiraiResource * @param id * 生成資源樹,id傳0,必須重根節點開始
入參:無序的list,返回正規樹list * @return */ public static List<MoiraiResource> getResourceTree(List<MoiraiResource> listMoiraiResource, Long id) throws Exception{
if (StrUtils.isEmptyList(listMoiraiResource)) { return null; } List<MoiraiResource> list = new ArrayList<>(); List<MoiraiResource> listContinue = new ArrayList<>(listMoiraiResource); for (MoiraiResource mr : listMoiraiResource) { if (mr.getPid().equals(id)) { listContinue.remove(mr); mr.setChildren(getResourceTree(listContinue, mr.getResourceId())); list.add(mr); } } if (list.size() == 0) { return null; } return list; }
