Web_Design 板


LINE

※ 引述《forkome (丁丁是個人材)》之銘言: : 種類 子種類 書名 : 第一筆 小說 科幻 丁丁大戰哥吉拉 : 第二筆 小說 科幻 星際大戰丁丁 : 第三筆 小說 愛情 丁丁再愛我一遍 : 第四筆 雜誌 生活 學丁丁減肥 : 第五筆 雜誌 語言 跟丁丁學英文 : 目前小弟想把他放進三維陣列裡來使用 : array[0] = 小說 array[0][0] = 科幻 array[0][0][0] = 丁丁大戰哥吉拉 : array[1] = 雜誌 array[0][1] = 愛情 array[0][1][0] = 丁丁再愛我一遍 : 小弟使用的方式是 : rs1 = select distinct 種類 from book : while(rs1.next()){ : array[i] = rs1.getString(1) : ↑把種類放進一維陣列 : rs2 = select distinct 子種類 from book where 種類 = rs1.getString(1) : while(rs1.next()){ : array[i][j] = rs2.getString(1) : ↑把子種類放進二維陣列 : rs3 = select * from book where 種類=rs1.getString(1) and 子種類 = rs2.getString(1) : while(rs3.next()){ : array[i][j][k] = rs3.getString(1) : ↑把書名放進三維陣列 : } : } : } : 為了將結果放進陣列裡,使用了三個RecordSet,若量大的話 : 會跑的很慢,上面是小弟使用的方式,不知有沒有比較快的方式 : 使用的語言是java,主要是想減少RecordSet的使用 : 還是說~~沒錯,只能那樣用 我應該說我回這篇是在開玩笑,還是我是說認真的呢,(思) 應該一半一半吧......既然都寫了就貼出來了...XDXDXD 其實我是覺得你可以用 "分類;子分類;書名"這樣的字串 然後用TreeSet存 , 這樣也是可以達到用分類子分類排序的效果 , 要取用的時候用iterator掃一次就可以找到你想要的了... 唯一的缺點大概是同樣的分類/子分類/底下不能有同樣的書名吧, 對於有些書只有版本號不同的時候可能有點不方便。 當然 這還是能改的 ,很多方式就是了...:P 至於底下這個無聊作 看看就好(核爆) ──────────────────────────────── /*懶得做資料庫....用array替代先...*/ String[][] list={ {"小說","科幻","丁丁大戰哥吉拉"}, {"小說","科幻","星際大戰丁丁"} , {"小說","愛情","丁丁再愛我一遍"} , {"雜誌","生活","丁丁再愛我一遍"} , {"雜誌","語言","跟丁丁學英文"} }; BookList listBook=new BookList(); for(int i=0;i<list.length;i++){ BookObj objBook=new BookObj(list[i][0],list[i][1],list[i][2]); listBook.addBook(objBook); } printBook(listBook.getTypeBook("小說")); printBook(listBook.getSubTypeBook("小說","科幻")); ──────────────────────────────── static public void printBook(BookObj[] array){ for(int i=0;i<array.length;i++){ System.out.println(array[i].m_strType+":" +array[i].m_strSubtype+":"+array[i].m_strName); } } ──────────────────────────────── class BookObj{ String m_strType; String m_strSubtype; String m_strName; public BookObj(String strType,String strSubtype,String strName){ m_strType=strType; m_strSubtype=strSubtype; m_strName =strName; } } /*考慮到可能會有查找分類項目的需求 ,建立一個有分類的結構.*/ class BookList{ private HashMap m_setBook; BookList(){ m_setBook=new HashMap(); } boolean addBook(BookObj rBook){ if(!m_setBook.containsKey(rBook.m_strType)){ //分類 m_setBook.put(rBook.m_strType,new HashMap()); } HashMap setSubType= (HashMap)m_setBook.get(rBook.m_strType); if(!setSubType.containsKey(rBook.m_strSubtype)){ //子分類 setSubType.put(rBook.m_strSubtype,new ArrayList()); } ArrayList aryBooks= (ArrayList)setSubType.get(rBook.m_strSubtype); //aryBooksadd(rBook); aryBooks.add(rBook); return true; } BookObj getBook(String strBookname){ Iterator irType=m_setBook.values().iterator(); BookObj retBook; while(irType.hasNext()){ Iterator irSubType= ((HashMap)irType.next()).values().iterator(); while(irSubType.hasNext()){ retBook = findBook((ArrayList)irSubType.next(),strBookname); if(retBook!=null) return retBook; } } return null; } BookObj[] getTypeBook(String strType){ ArrayList listRet=new ArrayList(); if(m_setBook.containsKey(strType)){ Iterator irSubType= ((HashMap)m_setBook.get(strType)).values().iterator(); while(irSubType.hasNext()){ listRet.addAll(((ArrayList)irSubType.next())); } } return transToBook(listRet); } BookObj[] getSubTypeBook(String strType,String strSubType){ ArrayList listRet=new ArrayList(); if(m_setBook.containsKey(strType)){ HashMap setSubType=(HashMap)m_setBook.get(strType); if(setSubType.containsKey(strSubType)){ listRet.addAll((ArrayList)setSubType.get(strSubType)); } } return transToBook(listRet); } private BookObj[] transToBook(ArrayList listBook) { BookObj[] aryBook=new BookObj[listBook.size()]; for(int i=0;i<listBook.size();i++){ aryBook[i]=(BookObj)listBook.get(i); } return aryBook; } private BookObj findBook(ArrayList listBook,String strBookname){ for(int i=0;i<listBook.size();i++){ BookObj bookTmp=(BookObj)listBook.get(i); if(bookTmp.m_strName.equals(strBookname)) return bookTmp; } return null; } BookObj getBook(String strType,String strSubType,String strBookname){ if(!m_setBook.containsKey(strType)) return null; //分類不存在 if(!((HashMap)m_setBook.get(strType)).containsKey(strSubType)) return null; //子分類不存在 ArrayList listSubtypeBook = (ArrayList) ((HashMap)(m_setBook.get(strType))).get(strSubType); return findBook(listSubtypeBook,strBookname); } int size(){ int size=0; Iterator irType=m_setBook.values().iterator(); while(irType.hasNext()){ Iterator irSubType= ((HashMap)irType.next()).values().iterator(); while(irSubType.hasNext()){ size+= ((ArrayList)irSubType.next()).size(); } } return size; } } --  ▄▅▆▇███▇▆▅▄▃        ╰┼╯─╮ ╮         ◥███████████◣       ╰┼╯=│=│         ◥██████───────    *. ╯  ╯ ╯ の 物 語 .*  ◥███████──────◣ ~ ◢◣             ◢◣  ◥██████───────◤   ◥◤  空白的世界.翼 ◥◤  ◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂telnet://tony1223.no-ip.info --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.59.247 ※ 編輯: TonyQ 來自: 220.132.59.247 (10/09 17:22)
1F:推 forkome:對於經驗不足的我,幫助良多,非常謝謝你用心的回我 10/10 13:16







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP