java - HashMap的性能和怪异

标签 java performance hashmap

嵌套 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/

相关文章:

java - 是否可以在Java中创建具有多个角色的MongoDb用户?

java - 如何在 java 中按字母顺序对字符串数组进行排序?

javascript - 使用 document.on() 是否被认为是不好的做法?

java - 调试级别记录语句性能

java - 在一个循环中使用 HashMap 的第一个非重复字符?

java 流 : collect taking in mind stream is empty

java - 不同风格的 Android 应用程序的动态应用程序流

html - Canvas 渐变性能

java - 返回包含另一个链表中的键的链表

ruby-on-rails - Order Hash 并删除第一个键值对