这样一个小功能该如何设计?不要代码,求大家给思路
- Java code
学院代码 学院名称 学院简称01 会计学院 01院02 工商管理学院 02院03 经贸学院 03院04 信息科学学院 04院05 管理科学与工程学院 05院06 机电工程学院 06院07 外语系 07系08 法律系 08系09 土木建筑工程学院 09院10 计算机科学与应用系 10系11 数理系 11系12 人文社会科学系 12系13 电子通信工程系 13系14 艺术设计系 14系15 航空工程系 15系20 软件职业技术学院 软件院21 体育教学部 体育部22 对外合作办学 国际院23 校团委 团委24 学生处 学生处25 继续教育学院 成教院
上述格式的数据,我需要把它们存储到一个类中,然后这个类提供相关查询方法,也就是给定一个内容,查询出与之匹配的相关内容。
例如,给定“艺术设计系”,可以查出他的简称是“14系”
给定“团委”,可以查出他的学院代码是“23”
总之,给定任意一个内容,其他两个都应该能查出来
问:
相关数据在类的内部应该用什么样的数据结构来存储,写出的代码会比较优雅?查询效率能稍微高一些就更好了。
[解决办法]
就这么点点数据用什么无所谓
用个数组存都行。
每次遍历查找。
想稍微快点就用hashmap。
[解决办法]
主要是写出来要优雅...
[解决办法]
25行数据,用什么都不会慢到哪的,效率看不出来差别。就放到map里,数组都可以。
[解决办法]
[解决办法]
我觉得用两个就可以了,比如map(学院代码,map(学院名称,学院简称))
这样可以吧
[解决办法]
这是要设计数据库吗?
[解决办法]
[解决办法]
[解决办法]
[解决办法]
也可以通过value找key啊
[解决办法]
[解决办法]
这种小数据量挺适合用内存数据库的
[解决办法]
map(学院代码,学院名称)
map(学院名称,学院简称)
[解决办法]
这个用数据库
用的时候查询多快啊
[解决办法]
将3列数据按统一顺序分别存放在3个ArrayList中,每次对某个字段进行遍历查询并记录匹配值位置,在获得另一个值时,只要给出位置就行能获得相对应值。
[解决办法]
- Java code
Map<String, String> _dataMap1 = new HashMap<String, String>(); Map<String, String> _dataMap2 = new HashMap<String, String>(); _dataMap1.put("01", "会计学院"); _dataMap2.put("01", "01院"); _dataMap1.put("02", "工商管理学院"); _dataMap2.put("02", "02院"); _dataMap1.put("03", "经贸学院"); _dataMap2.put("03", "03院"); _dataMap1.put("04", "信息科学学院"); _dataMap2.put("04", "04院"); _dataMap1.put("05", "管理科学与工程学院"); _dataMap2.put("05", "05院");
[解决办法]
将01 会计学院 01院 抽象为一个内部类,在类中提供一个HashMap存放这些数据组成的内部类实例,key为01之类的id,提供公开检索方法:
- Java code
package csdn;import java.util.ArrayList;import java.util.List;public class DatePath { private List<Info> list=new ArrayList<Info>(); private class Info{ private int id; private String name; private String title; public Info(int id, String name, String title) { this.id = id; this.name = name; this.title = title; } public String search(String part){ String total = id+name+title; return total.contains(part)?total.replace(part,""):""; } } public DatePath(){ list.add(new Info(1,"会计学院","01院")); //此处省略n多实例 } public String searchInfoByPart(String part){ for(Info info:list){ if(info.search(part)!="")return info.search(part); } return "没有搜索到相关项"; } public static void main(String[] args) { System.out.println(new DatePath().searchInfoByPart("01院")); }}
[解决办法]
说错了,纠正下,我是用list存储信息,检索时调用内部类的方法作为返回
[解决办法]
[解决办法]