您好,登錄后才能下訂單哦!
這篇文章主要講解了“JAVA遞歸調(diào)用的實例代碼”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“JAVA遞歸調(diào)用的實例代碼”吧!
1、遞歸
遞歸就是一個程序或函數(shù)在其中定義或說明有之間或者間接調(diào)用自身的一種方法,它通常把一個大型復(fù)雜的問題層層轉(zhuǎn)化為一個原問題相似的規(guī)模較小的問題來求解,遞歸策略只需要少量的程序就可以描述出解題過程所需要的多次重復(fù)計算,大大的減少了程序的代碼量,遞歸的能力在于用有限的語句來定義對象的無限集合,一般來說,遞歸需要邊界條件,遞歸前進(jìn)段和遞歸返回段,當(dāng)邊界條件不滿足時,遞歸前進(jìn),當(dāng)邊界條件滿足時,遞歸返回。
2、實例代碼
private List<HkFiletype> buildTree(List<HkFiletype> hkFiletypes, String preentId, List<HkFiletype> hktrees){ //第一級數(shù)據(jù) 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、代碼調(diào)用
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遞歸調(diào)用的實例代碼”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對JAVA遞歸調(diào)用的實例代碼這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。