Java中的哈希表库

时间:2016-03-01 12:03:02

标签: java hashtable

嘿我现在正在做一个程序,它使用java中已经内置的哈希表。我只是想知道如果单独链接列表处理它们,如何获得在哈希表中占用相同索引的某些值。

好像“肉”,“伙伴”和“团队”这个词占据索引号285,我怎么能得到“团队”而不是肉,或者相反?

由于

- 编辑

对不起我的意思是,如果我抬起头来说'肉',我怎么能得到那个索引中的所有其他词,而不是像我说的那样查找索引。 我只想返回hashmap中索引的所有值

3 个答案:

答案 0 :(得分:1)

如果使用Java 8,则HashMap使用树进行冲突。这意味着,对于链接列表,put / get / remove的最差情况时间为O(log N)而不是O(N),就像之前的版本一样。

您还可以使用ConcurrentHashMap进行并发访问。

  好像这个词"肉"和#34;交配"和#34;团队"拿起索引号285,我怎么能得到#34; team"而不是肉,或反过来?

你问的是关键,而不是索引。它只会在密钥匹配时获取值。如果您要求的密钥不存在,但会发生冲突,map.get(key)将返回null

答案 1 :(得分:0)

  1. 不要使用Hashtable,这是一个过时的课程(超过15年)。请改用HashMap
  2. 这两个类中的公共API都没有提供您正在寻找的功能,因此您没有一个干净利落的方式来做您想做的事。
  3. 你的可能性是丑陋的反思黑客,或创建你自己的实现,它确实为你提供了访问内部结构的方法。

答案 2 :(得分:0)

正如Kayaman在上面的回答中所指出的,我还建议在哈希表上使用Hashmap,因为只有在需要执行线程安全操作时才建议使用哈希表。