想知道有没有办法为HashMap中的每个元素获取唯一的整数键。我考虑过hashCode()但是没有保证实现唯一键。可以使用各种算法编写单独的程序,但在Java中寻找内置解决方案的轻量级。 HashMap将包含最多100个元素。
答案 0 :(得分:1)
如果您只需要一个唯一ID ,您可以使用LinkedHashMap
(来自Javadoc)定义迭代排序,这通常是插入密钥的顺序进入地图(插入顺序),如果你那么得到keySet
你可以构建一个ArrayList
,然后使用List
中的索引作为你的唯一ID 。
答案 1 :(得分:0)
查看Apache Commons中的HashCodeBuilder。它就像你得到的那样接近 - 你只需要考虑你想要哈希的每个元素。可能对你有用的是你可以添加任何东西,包括你选择的常数 - 所以如果你想添加地图的索引或你能想到的任何东西来保证唯一性,你可以。
Their documentation here has a pretty good example.
它只是超级灵活,所以它应该让这更容易,无论如何!