有很多类似于这样的成对数据,怎么存到内存中去,用哪个集合性能好些"n1" , "abcdef"
"n1",   "me"
"n1",    "you"
"n1",   "he""n2"    "aae" 
"n2"    "eae"
"n2"    "safe"
"n2"    "ase"

解决方案 »

  1.   


    哪个作key? 哪个作value?
      

  2.   

    你要是这么说反而简单了
    n1作key,后面所有的都做值,想分开每个值,可以加个逗号之类的,或者把value做成list
      

  3.   

    用List<String> list=new ArrayList<String>();动态数组
      

  4.   

    思路用HashTable或者HashMap是没错的。因为明显是key-value。但是楼上各位说的不是最佳方案,直接用String-String这样的Value-Key方式。我的方案:key可以用n1,n2这样的String, 但是value不要直接用"abc","1231321",你可以把具有相同key的value丢进一个Collection里面,也就是说
    你现在的key-value对是n1-Collection1,n2-Collection2这种方式。好处:
    1)便于增删数据,如果你的n1要增加或者减少元素,直接修改ColletionX就可以了Collection是jdk封装的基本框架,效率很高,有许多实现,如List,Set等等
    2)便于扩展:如果要支持线程安全就用vector;如果要剔除重复数据且排序,就用TreeSet。真正实现了面向接口编程 
      

  5.   

    hashtable
    put("n1",new ArrayList())
    put("n2",new ArrayList())
    list里面保存那一坨
      

  6.   

    不能直接用HASHTABLE,要先给数据做个处理,将n1,n2的 数据以一个符号连接起来,如:“,”,“|”等
    hashtable中的数据如下:
    key:n1,value: "abcdef,me,you,e"key:n2,value:"aae,eae,safe,ase"
    读出数据时要字符分割了。
    这样的做法和10楼的类似,但不知道哪种效率高些
      

  7.   

        public static void main(String[] args)
        {
            Map<String, String> map = new HashMap<String, String>();
            
            map.put("abcdef", "n1");
            map.put("me", "n1");
            map.put("you", "n1");
            map.put("he", "n1");
            
            map.put("aae", "n2");
            map.put("eae", "n2");
            map.put("safe", "n2");
            map.put("ase", "n2");
            
            for (Map.Entry<String, String> mapentry : map.entrySet())
            {
                if ("n1".equals(mapentry.getValue()))
                {
                    System.out.println(mapentry.getKey() + ":" + mapentry.getValue());
                }            
            }        
        }打印结果:
    abcdef:n1
    you:n1
    me:n1
    he:n1
      

  8.   

    直接String吧
    n1.abcdef.me.you.he.....
    想找出来n1对应也简单 用正则判断各个字符串属哪个
    再把需要的后边给分解出来
      

  9.   

    可以考虑使用MultiHashMapMultiMap mhm = new MultiHashMap();
     mhm.put(key, "A");
     mhm.put(key, "B");
     mhm.put(key, "C");
     Collection coll = (Collection) mhm.get(key);
      

  10.   

    用String, String的方式对内存性能最高。 如['nl', ',value1,value2,value3']等。
    要查找是否键值存在,只要index下(',value')是否有就可以了。
    注意键值第一个字符是分隔符如,。