学院代码 学院名称 学院简称
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”
总之,给定任意一个内容,其他两个都应该能查出来问:
相关数据在类的内部应该用什么样的数据结构来存储,写出的代码会比较优雅?查询效率能稍微高一些就更好了。
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的话,要用6个map吧(3种组合,双向查询),感觉写出来好丑陋
这样可以吧
map(学院名称,学院简称)
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院");_dataMap1:key为学院代码,value为学院名称
_dataMap2:key为学院代码,value为学院简称if (_dataMap1.containsKey(inputStr) || _dataMap1.containsValue(inputStr)) {
// _dataMap1中可以找到学院代码、学院名称, 再通过key再到_dataMap2中get出学院简称
} else if (_dataMap2.containsKey(inputStr) || _dataMap2.containsValue(inputStr)) {
// _dataMap2中可以找到学院代码、学院简称, 再通过key再到_dataMap1中get出学院名称
} else {
// 没有符合的数据
}
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院"));
}
}