嵌套 HashMap 性能。
HashMap 我有以下内容:
HashMap <String, HashMap <String, HashMap <String,String>>> table = new HashMap <String, HashMap <String, HashMap <String, String> >>();
这是对的吗?
最佳答案
HashMap <String, HashMap <String, HashMap <String,String>>> table1 = new HashMap <String, HashMap <String, HashMap <String, String> >>();
↑ 完全没问题。
就嵌套 HashMap 而言,如果您通常对最终值而不是中间映射感兴趣,更好的选择可能是连接键并使用非嵌套 HashMap。
...也就是说,定义一个带有三个字符串的Triple
类,并定义一个hashcode和equals方法等。然后使用:
HashMap<Triple,String> table2 = new HashMap<Triple,String>();
...同样,这假设您的查找操作采用三个字符串并返回一个值。
<小时/>要在table1
上进行查找,您需要执行以下操作:
String val = table1.get(key1).get(key2).get(key3);
要在table2
上进行查找,您需要执行以下操作:
Triple keyt = new Triple(key1, key2, key3);
String val = table2.get(keyt);
(...FWIW,在 table2
上进行插入一定更容易)。
关于java - HashMap的性能和怪异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7086009/