這篇文章主要講解了“JAVA遞歸調(diào)用的實例代碼”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“JAVA遞歸調(diào)用的實例代碼”吧!
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計與策劃設(shè)計,昆玉網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:昆玉等地區(qū)。昆玉做網(wǎng)站價格咨詢:18982081108
1、遞歸
遞歸就是一個程序或函數(shù)在其中定義或說明有之間或者間接調(diào)用自身的一種方法,它通常把一個大型復(fù)雜的問題層層轉(zhuǎn)化為一個原問題相似的規(guī)模較小的問題來求解,遞歸策略只需要少量的程序就可以描述出解題過程所需要的多次重復(fù)計算,大大的減少了程序的代碼量,遞歸的能力在于用有限的語句來定義對象的無限集合,一般來說,遞歸需要邊界條件,遞歸前進(jìn)段和遞歸返回段,當(dāng)邊界條件不滿足時,遞歸前進(jìn),當(dāng)邊界條件滿足時,遞歸返回。
2、實例代碼
private ListbuildTree(List hkFiletypes, String preentId, List 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 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 ListselectTreeList(HkFiletype hkFiletype){ hkFiletype.setDelmark(1); List hkFiletypes = hkFiletypeMapper.selectList(hkFiletype); List 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)用的實例代碼這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!