相关疑难解决方法(0)

哈希:内部如何运作?

这听起来可能是一个非常模糊的问题,但事实并非如此.我在维基上经历过Hash函数描述,但理解它并不是很有帮助.

我正在寻找像Hashing这样相当复杂的主题的简单答案.这是我的问题:

  1. 哈希是什么意思?它在内部如何运作?
  2. 它遵循什么算法?
  3. 有什么区别HashMap,HashTableHashList
  4. "恒定时间复杂度"是什么意思?为什么哈希的不同实现会给出恒定的时间操作?
  5. 最后,为什么大多数的面试问题HashLinkedList询问,有没有从测试受访者的知识,为任何特定的逻辑?

我知道我的问题清单很大但我真的很感激,如果我能够对这些问题得到一些明确的答案,因为我真的想了解这个主题.

java algorithm hash data-structures

50
推荐指数
4
解决办法
7万
查看次数

java.util.HashMap和HashSet的内部实现

我一直在试图了解内部实现的java.util.HashMapjava.util.HashSet.

以下是我脑海中浮现的疑惑:

  1. 什么是@Override public int hashcode()HashMap/HashSet中的重要性?这个哈希码在内部使用在哪里?
  2. 我一般都看到HashMap的关键是String这样的myMap<String,Object>.我可以映射值someObject(而不是字符串)myMap<someObject, Object>吗?我需要遵守的所有合同成功发生了什么?

提前致谢 !

编辑:

  1. 我们是说密钥的哈希码(check!)是在哈希表中映射值的实际内容吗?当我们执行myMap.get(someKey);java时,内部调用someKey.hashCode()以获取哈希表中的数字以查找结果值?

答:是的.

编辑2:

  1. 在a中java.util.HashSet,从哪里为Hash表生成密钥?它来自我们正在添加的对象,例如.mySet.add(myObject);然后myObject.hashCode()将决定它在哈希表中的位置?(因为我们不在HashSet中给出键).

答:添加的对象成为关键.价值是假的!

java language-implementation hashmap hashcode hashset

18
推荐指数
4
解决办法
5万
查看次数