這篇文章主要講解了“JAVA遞歸調用的實例代碼”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“JAVA遞歸調用的實例代碼”吧!
1、遞歸
遞歸就是一個程序或函數在其中定義或說明有之間或者間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個原問題相似的規模較小的問題來求解,遞歸策略只需要少量的程序就可以描述出解題過程所需要的多次重復計算,大大的減少了程序的代碼量,遞歸的能力在于用有限的語句來定義對象的無限集合,一般來說,遞歸需要邊界條件,遞歸前進段和遞歸返回段,當邊界條件不滿足時,遞歸前進,當邊界條件滿足時,遞歸返回。
2、實例代碼
private List<HkFiletype> buildTree(List<HkFiletype> hkFiletypes,
String preentId,
List<HkFiletype> hktrees){
//第一級數據
if ("0".equals(preentId)){
hkFiletypes.forEach(hkFiletype -> {
String parentfiletypeid = hkFiletype.getParentfiletypeid();
if (null != parentfiletypeid && parentfiletypeid.equals(preentId)){
hktrees.add(hkFiletype);
}
});
}else {
hktrees.forEach(hkFiletype -> {
String id = hkFiletype.getId();
List<HkFiletype> hktree = new ArrayList<>();
hkFiletypes.forEach(hkFiletype1 ->{
String parentfiletypeid = hkFiletype1.getParentfiletypeid();
if (parentfiletypeid.equals(id)){
hkFiletype.setHasChildren(true);
hktree.add(hkFiletype1);
buildTree(hkFiletypes,hkFiletype1.getId(),hktree);
}
} );
hkFiletype.setChiles(hktree);
});
}
return hktrees;
}3、代碼調用
public List<HkFiletype> selectTreeList(HkFiletype hkFiletype){
hkFiletype.setDelmark(1);
List<HkFiletype> hkFiletypes = hkFiletypeMapper.selectList(hkFiletype);
List<HkFiletype> hktrees = new ArrayList<>();
hktrees = buildTree(hkFiletypes,"0",hktrees);
hktrees = buildTree(hkFiletypes,"1",hktrees);
return hktrees;
}感謝各位的閱讀,以上就是“JAVA遞歸調用的實例代碼”的內容了,經過本文的學習后,相信大家對JAVA遞歸調用的實例代碼這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。