学院代码 学院名称 学院简称
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”
总之,给定任意一个内容,其他两个都应该能查出来问:
相关数据在类的内部应该用什么样的数据结构来存储,写出的代码会比较优雅?查询效率能稍微高一些就更好了。

解决方案 »

  1.   

    就这么点点数据用什么无所谓
    用个数组存都行。
    每次遍历查找。想稍微快点就用hashmap。
      

  2.   

    25行数据,用什么都不会慢到哪的,效率看不出来差别。就放到map里,数组都可以。
      

  3.   


    数据不止25行,上述只是范例
    另外,用map的话,要用6个map吧(3种组合,双向查询),感觉写出来好丑陋
      

  4.   

    我觉得用两个就可以了,比如map(学院代码,map(学院名称,学院简称))
     这样可以吧
      

  5.   

    map(学院代码,学院名称)
    map(学院名称,学院简称)
      

  6.   

    将3列数据按统一顺序分别存放在3个ArrayList中,每次对某个字段进行遍历查询并记录匹配值位置,在获得另一个值时,只要给出位置就行能获得相对应值。
      

  7.   

    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院");_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 {
                // 没有符合的数据
            }
      

  8.   

    将01    会计学院    01院  抽象为一个内部类,在类中提供一个HashMap存放这些数据组成的内部类实例,key为01之类的id,提供公开检索方法: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院"));
    }
    }
      

  9.   

    说错了,纠正下,我是用list存储信息,检索时调用内部类的方法作为返回
      

  10.   

    ls觉得好的理由是啥?我看不出来为什么说这个是可行的....这不是两个map....这是N+1个map