猿问
到底什么是 hash,有什么作用,hashtable hashmap 又是什么,跟
如标题.
我看过网上的解释,都是很官方的答案,看不明白.明白的大神能不能用通俗的语言解释.小弟感谢啦
陪伴而非守候
浏览 604
回答 5
5回答
富国沪深
Hash中文翻译为散列,其实就是用于表示事物特征的一串特征码。事物和其Hash其实就像人和指纹的关系,人完整的相貌有眼鼻口舌手脚等等等等,而指纹就是一个能鉴别不同人之间的特征,所以可以理解问指纹就是人的Hash。Hash的用处很多,比如验证、加密等都可以用到Hash。用于验证这就无须赘述了吧,人可以通过指纹来验证,文件、对象等等都可以通过其自身的Hash来验证,比如国外的一些网站提供下载时,一般还会提供一份下载文件的Hash(算法各有不同),以帮助下载者验证下载的文件是否正确(文件可能因为网络错误或者中间者攻击而被篡改)。不过Hash提取的只是特征,就行指纹一样,虽然说难以找到指纹一样的人,但并不代表找不到,所以Hash还存在一种问题,就是Hash冲突,即两个不同的事务其采集的特征是一致的。这种情况下我们可以采用不同的Hash算法进一步加以比较,比如指纹相同再比较一下脚纹,不过最终的办法还是真正全身比较。而正是因为Hash只提取了事物的部分信息,所以用于加密也是非常可靠的,就如通常网站都会采用Hash来对密码进行加密,其作用就是即使密码泄露,破解者也无法知道密码到底是什么,就好像你知道指纹,但你却难以找到拥有这个指纹的人是谁。在Java中HashMap和HashTable都是通过Hash算法来实现高效Map的方式,其区别仅是一些细节限制方面有所不同,和Hash算法本身并没有什么关系。
0
0
0
吃鸡游戏
好吧,通俗的,如何比较2个文件是否相同,2个文件可以完全读取到的情况下逐字节是可以的,一般本地文件与网络文件比较的是hash值,通过一定hash算法算出然后比较这个简单的hash就能比较文件。同理内存中的数据仍然可以算出hash值进行比较
0
0
0
千万里不及你
hash 又称 哈希,是一类函数的统称,其特点是定义域无限,值域有限
0
0
0
婷婷同学_
呃,你可以把它看成一个DNA,每个生物的DNA都是不一样的(在这里请不要举双胞胎DNA一样的例子啦)。那么在计算机中,每个对象的Hash(DNA)都是不一样的。Hashmap是一个数组和链表的结合体(在数据结构称“链表散列“)。HashTable是比较古老的东西了..主要区别在于HashMap 允许空(null)键值(key)
0
0
0
随时随地看视频
慕课网APP
相关分类
Java
我要回答