cha*_*ged 2 java collections hashmap
我正在开发一个需要在hashmap中放置键值对的解析器.
但是一个键可以有多个值,我可以这样做
HashMap<String,ArrayList<String>> .
但是如果键的数量非常大并且它开始与其他键的哈希码匹配会发生什么.
这会改写以前的键值吗?
rsp*_*rsp 12
如果映射中键的哈希与现有键冲突,则Map将重新排列或将键保留在该哈希下的列表中.没有密钥会被其他密钥覆盖,因此会在同一个桶中进行排序.
如果多个线程同时使用映射,则可能希望在不处理并发访问时同步对映射的访问.(某些标准映射可以执行,其他则不执行.Java Collections包确实包含添加同步的包装类.)
首先,查看Google Collections Multimap,它可以让您为每个键分配多个值,而无需手动维护值列表.
其次,没有 - 具有相同哈希码的密钥不会发生冲突.哈希码不保证或要求是唯一的; HashMap在内部为每个哈希代码维护一个键/值对"桶".