真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java遞歸查詢(xún)方法代碼 java遞歸查找文件

java的遞歸查詢(xún)?cè)趺磳?xiě)

原文在這里,寫(xiě)得不錯(cuò),樓主可參考下,具體鏈接如下,我只是搬運(yùn)工!

十載的青田網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整青田建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“青田網(wǎng)站設(shè)計(jì)”,“青田網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

/**?

*?說(shuō)明方法描述:將list轉(zhuǎn)為樹(shù)tree結(jié)構(gòu)?

*??

*?@param?allRrecords?

*?@return?

*?@time?2016年5月10日?下午6:00:35?

*?@author?yangdong?

*/??

public?ListRecord?useListRecordToTree(ListRecord?allRrecords)?{??

ListRecord?listParentRecord?=?new?ArrayListRecord();??

ListRecord?listNotParentRecord?=?new?ArrayListRecord();??

//?第一步:遍歷allRrecords保存所有數(shù)據(jù)的uuid用于判斷是不是根節(jié)點(diǎn)??

MapString,?String?mapAllUuid?=?new?HashMapString,?String();??

MapString,?Record?allRecordMap?=?new?HashMapString,?Record();??

for?(Record?record?:?allRrecords)?{??

mapAllUuid.put(record.getStr("uuid"),?record.getStr("uuid"));??

allRecordMap.put(record.getStr("uuid"),?record);??

}??

//?第二步:遍歷allRrecords找出所有的根節(jié)點(diǎn)和非根節(jié)點(diǎn)??

if?(allRrecords?!=?null??allRrecords.size()??0)?{??

for?(Record?record?:?allRrecords)?{??

if?(StringUtil.isBlank(record.getStr("parent_uuid"))??

||?!mapAllUuid.containsKey(record.getStr("parent_uuid")))?{??

listParentRecord.add(record);??

}?else?{??

listNotParentRecord.add(record);??

}??

}??

}??

//?第三步:?遞歸獲取所有子節(jié)點(diǎn)??

if?(listParentRecord.size()??0)?{??

for?(Record?record?:?listParentRecord)?{??

//?添加所有子級(jí)??

record.set("childs",?this.getTreeChildRecord(listNotParentRecord,?record.getStr("uuid")));??

}??

}??

return?listParentRecord;??

}??

/**?

*?說(shuō)明方法描述:使list轉(zhuǎn)換為樹(shù)并根據(jù)關(guān)鍵字和節(jié)點(diǎn)名稱(chēng)過(guò)濾?

*??

*?@param?allRecords?所有節(jié)點(diǎn)?

*?@param?keywords?要過(guò)濾的關(guān)鍵字?

*?@param?filterFields?要過(guò)濾的字段?

*?@return?

*?@time?2016年5月19日?下午3:27:32?

*?@author?yangdong?

*/??

public?ListRecord?useListRecordToTreeByKeywords(ListRecord?allRecords,?String?keywords,?String...?filterFields)?{??

ListRecord?listRecord?=?new?ArrayListRecord();??

MapString,?Record?allRecordMap?=?new?HashMapString,?Record();??

for?(Record?record?:?allRecords)?{??

allRecordMap.put(record.getStr("uuid"),?record);??

}??

//?遍歷allRrecords找出所有的nodeName和關(guān)鍵字keywords相關(guān)的數(shù)據(jù)??

if?(allRecords?!=?null??allRecords.size()??0)?{??

if?(filterFields.length??1)?{??

for?(Record?record?:?allRecords)?{??

for?(String?field?:?filterFields)?{??

//?比較??

if?(record.getStr(field).toLowerCase().indexOf(keywords.toLowerCase())?!=?-1)?{??

listRecord.add(record);??

}??

}??

}??

}?else?{??

for?(Record?record?:?allRecords)?{??

//?比較??

if?(record.getStr(filterFields[0]).toLowerCase().indexOf(keywords.toLowerCase())?!=?-1)?{??

listRecord.add(record);??

}??

}??

}??

}??

//?查找過(guò)濾出來(lái)的節(jié)點(diǎn)和他們的父節(jié)點(diǎn)??

listRecord?=?this.getSelfAndTheirParentRecord(listRecord,?new?ArrayListRecord(),??

new?HashMapString,?Record(),?allRecordMap);??

//?將過(guò)濾出來(lái)的數(shù)據(jù)變成樹(shù)tree結(jié)構(gòu)??

listRecord?=?this.useListRecordToTree(listRecord);??

return?listRecord;??

}??

/**?

*?說(shuō)明方法描述:遞歸查詢(xún)子節(jié)點(diǎn)?

*??

*?@param?childList?子節(jié)點(diǎn)?

*?@param?parentUuid?父節(jié)點(diǎn)id?

*?@return?

*?@time?2016年5月10日?下午3:29:35?

*?@author?yangdong?

*/??

private?ListRecord?getTreeChildRecord(ListRecord?childList,?String?parentUuid)?{??

ListRecord?listParentRecord?=?new?ArrayListRecord();??

ListRecord?listNotParentRecord?=?new?ArrayListRecord();??

//?遍歷tmpList,找出所有的根節(jié)點(diǎn)和非根節(jié)點(diǎn)??

if?(childList?!=?null??childList.size()??0)?{??

for?(Record?record?:?childList)?{??

//?對(duì)比找出父節(jié)點(diǎn)??

if?(StringUtil.equals(record.getStr("parent_uuid"),?parentUuid))?{??

listParentRecord.add(record);??

}?else?{??

listNotParentRecord.add(record);??

}??

}??

}??

//?查詢(xún)子節(jié)點(diǎn)??

if?(listParentRecord.size()??0)?{??

for?(Record?record?:?listParentRecord)?{??

//?遞歸查詢(xún)子節(jié)點(diǎn)??

record.set("childs",?getTreeChildRecord(listNotParentRecord,?record.getStr("uuid")));??

}??

}??

return?listParentRecord;??

}??

/**?

*?說(shuō)明方法描述:遞歸找出本節(jié)點(diǎn)和他們的父節(jié)點(diǎn)?

*??

*?@param?parentList?根據(jù)關(guān)鍵字過(guò)濾出來(lái)的相關(guān)節(jié)點(diǎn)的父節(jié)點(diǎn)?

*?@param?resultList?返回的過(guò)濾出來(lái)的節(jié)點(diǎn)?

*?@param?filterRecordMap?已經(jīng)過(guò)濾出來(lái)的節(jié)點(diǎn)?

*?@param?allRecordMap?所有節(jié)點(diǎn)?

*?@return?

*?@time?2016年5月19日?上午9:53:56?

*?@author?yangdong?

*/??

private?ListRecord?getSelfAndTheirParentRecord(ListRecord?parentList,?ListRecord?resultList,??

MapString,?Record?filterRecordMap,??

MapString,?Record?allRecordMap)?{??

//?當(dāng)父節(jié)點(diǎn)為null或者節(jié)點(diǎn)數(shù)量為0時(shí)返回結(jié)果,退出遞歸??

if?(parentList?==?null?||?parentList.size()?==?0)?{??

return?resultList;??

}??

//?重新創(chuàng)建父節(jié)點(diǎn)集合??

ListRecord?listParentRecord?=?new?ArrayListRecord();??

//?遍歷已經(jīng)過(guò)濾出來(lái)的節(jié)點(diǎn)??

for?(Record?record?:?parentList)?{??

String?uuid?=?record.getStr("uuid");??

String?parent_uuid?=?record.getStr("parent_uuid");??

//?如果已經(jīng)過(guò)濾出來(lái)的節(jié)點(diǎn)不存在則添加到list中??

if?(!filterRecordMap.containsKey(uuid))?{??

listParentRecord.add(record);//?添加到父節(jié)點(diǎn)中??

filterRecordMap.put(uuid,?record);//?添加到已過(guò)濾的map中??

allRecordMap.remove(uuid);//?移除集合中相應(yīng)的元素??

resultList.add(record);//?添加到結(jié)果集中??

}??

//?找出本節(jié)點(diǎn)的父節(jié)點(diǎn)并添加到listParentRecord父節(jié)點(diǎn)集合中,并移除集合中相應(yīng)的元素??

if?(StringUtil.isNotBlank(parent_uuid))?{??

Record?parentRecord?=?allRecordMap.get(parent_uuid);??

if?(parentRecord?!=?null)?{??

listParentRecord.add(parentRecord);??

allRecordMap.remove(parent_uuid);??

}??

}??

}??

//?遞歸調(diào)用??

getSelfAndTheirParentRecord(listParentRecord,?resultList,?filterRecordMap,?allRecordMap);??

return?resultList;??

}??

[java]?view?plain?copy

//示例??

[java]?view?plain?copy

/**?

*?說(shuō)明方法描述:遞歸查詢(xún)所有權(quán)限?

*??

*?@param?keyword?

*?@param?is_deleted?

*?@return?

*?@time?2016年5月10日?下午3:47:50?

*?@author?yangdong?

*/??

public?ListRecord?getRecordByKeywordRecursive(String?keyword,?String?is_deleted)?{??

//?第一步:查詢(xún)所有的數(shù)據(jù)??

StringBuffer?sql?=?new?StringBuffer(??

"?select?pa.uuid,pa.parent_uuid,pa.author_code,pa.author_name,pa.is_menu,pa.sort_number,pa.is_enable,pa.menu_icon?");??

sql.append("??from?s_author?pa");??

ListObject?params?=?new?ArrayListObject();??

sql.append("?where??pa.is_deleted=??");??

params.add(is_deleted);??

sql.append("?order?by?pa.sort_number?asc?");??

ListRecord?allRrecords?=?Db.use(AppConst.DB_DATASOURCE_MAIN).find(sql.toString(),?ParamUtil.listToArray(params));??

[java]?view?plain?copy

//第二步:將list變?yōu)闃?shù)tree結(jié)構(gòu)??

if?(StringUtil.isNotBlank(keyword))?{??

return?super.useListRecordToTreeByKeywords(allRrecords,?keyword,?"author_name");??

}?else?{??

return?super.useListRecordToTree(allRrecords);??

}??

}

JAVA的遞歸查詢(xún)指定后綴名文件的問(wèn)題

你的程序只打印指定目錄下的“.java”文件,是因?yàn)閐ir.listFiles(new FilenameFilter());只返回過(guò)濾后的文件列表,所以返回的是指定目錄下的“.java”文件

你的程序我?guī)湍愀暮昧?你看看吧

import?java.io.*;

class?test2

{

public?static?void?main(String[]?args)?

{

File?fi=new?File("D:\\BD\\java2016");???//指定查找目錄

showdir(fi);

}

public?static?void?showdir(File?dir)?//定義一個(gè)返回目錄中所有文件的方法showdir

{

if(dir.isDirectory())

{????????//判斷是否目錄,

File[]?files=dir.listFiles(new?FilenameFilter()???//定義過(guò)濾器,過(guò)濾文件類(lèi)型為.java的文件

{

public?boolean?accept(File?dir,String?name)

{

return?name.endsWith(".java");

}

});

for(int?x=0;xfiles.length;x++)????????//打印以.java結(jié)尾的文件名

{

System.out.println(files[x]);?

}

File[]?files1=dir.listFiles();???//定義沒(méi)有過(guò)濾器的文件列表

for(int?x=0;xfiles1.length;x++)????????

{

if(files1[x].isDirectory())???//如果是目錄則遞歸調(diào)用showdir方法,不是目錄則忽略

showdir(files1[x]);??

}

}

}?

}

java遞歸方法

一般遞歸只實(shí)現(xiàn)一個(gè)方向的邏輯,把兩個(gè)方向的邏輯放到一方法里并不好,不容易控制,實(shí)現(xiàn)也很麻煩,考慮到維護(hù)時(shí)的難度請(qǐng)不要在實(shí)際項(xiàng)目中使用。

搞了好一會(huì),搞出個(gè)這樣的輸出2N-1行星號(hào),中間最長(zhǎng)的一行不重復(fù),如果樓主希望重復(fù)中間一行,可以對(duì)代碼做一點(diǎn)點(diǎn)改動(dòng)。

/**

* 入口,傳入N

*/

public static void printStar(int number){

printStar2(number, number, 1);

}

/**

*

* @param number 給定的N

* @param oldNumber 給定的N

* @param direction 遞歸時(shí)的方向

*/

public static void printStar2(int number,int oldNumber, int direction){

if(number==0)direction++;

String s="";

int i = number;

if(direction==1){

for(;ioldNumber;i++){

s+="*";

}

number--;

}else{

for(;ioldNumber;i++){

s+="*";

}

number++;

if(numberoldNumber){

return;

}

}

printStar2(number,oldNumber,direction);

System.out.println(s);

}

-----------------------------------------------------------------------------------------

運(yùn)行效果:

printStar(5);

*

**

***

****

*****

****

***

**

*

java遞歸:查詢(xún)e盤(pán)下所有文件夾及其子文件夾里名為s的文件并打印,s為從控制臺(tái)輸入的需要查詢(xún)的文件名

public static void main(String[] args) throws Exception {

System.out.print("請(qǐng)輸入檢索的盤(pán)符:");

Scanner input = new Scanner(System.in);

String pf = input.next();

System.out.print("請(qǐng)輸入檢索的字符串:");

String s = input.next();

File file = new File(pf + ":/");

if (!file.isDirectory()) {

System.out.println("盤(pán)符不存在,或沒(méi)有內(nèi)容!");

return;

}

js(file, s);

}

public static void js(File file, String s) throws Exception {

if (file == null)

return;

if (file.isFile()) {// 判斷是否是文件

String name = file.getName();// 取得文件的名字

// 文件的名字沒(méi)有去掉后綴,這段代碼你自己寫(xiě)吧。

name = name == null ? "" : name.trim();

String path = file.getPath();// 取得文件路徑

if (name.equalsIgnoreCase(s))// 如果文件名于錄入的字符串相等打印文件路徑

System.out.println(path);

}

File[] files = file.listFiles();// 取得文件夾中包含的文件及文件夾

if (files == null || files.length = 0)

return;// 如果沒(méi)有其中沒(méi)有文件或文件夾,返回

for (File file2 : files) {// 循環(huán)其下所有文件及文件夾

js(file2, s);// 遞歸

}

}

大體上是這樣的。

一段JAVA的遞歸代碼

下面遞歸寫(xiě)了一段遞歸累加到100,每加20個(gè)就換行輸出。

package?zhidao;

public?class?Digui?{

public?static?int?add(int?num){

int?sum?=?0;

StringBuffer?sb?=?new?StringBuffer();

if?(num?=?0)?{

return?0;

}else{

if?(num?==?1)?{

sum?=?sum+1;

}else?{

sum?=?add(num-1)+num;

}

if?(num?%?20?==?0)?{

System.out.println("[index?=?"+num+"?sum?=?"+sum+"]");

}else?{

System.out.print("[index?=?"+num+"?sum?=?"+sum+"],");

}

}

return?sum;

}

public?static?void?main(String[]?args)?{

add(100);

}

}

java 遞歸查詢(xún)數(shù)據(jù)庫(kù)

這個(gè)就是個(gè)樹(shù)形結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)里的東西。查詢(xún)后構(gòu)建一個(gè)樹(shù)就行了。稍后給你一個(gè)代碼。


新聞名稱(chēng):java遞歸查詢(xún)方法代碼 java遞歸查找文件
文章來(lái)源:http://weahome.cn/article/dooscgi.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部