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灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP