HashSet 哈希值

字符串的哈希值 任何对象都有哈希值

在java.lang.Object类中 有方法如下,所以所有类的对象都可以调用这个方法

int hashCode()
返回该对象的哈希码值。

若没有重写父类的hashCode()方法 每次调用方法都返回不同的哈希值

java.lang.String 类 已经重写了父类java.lang.Object的hashCode()方法

所以对于"str1".hashCode() 的返回值无论运行多少次都一样

HashSet是怎么保证不存入重复元素的

要存入的元素为"str1" 调用元素的hashCode()方法,得到一个哈希值,查找集合中是否有相同的哈希值

  • 如果没有,则存入集合
  • 如果有相同的哈希值,则后来的对象调用 equals(),

如果返回 true 则判定元素重复,不存入集合

如果返回 false 存入集合 ( 桶的存储方式,一条竖线上的元素哈希值相等)

  • 对于自定义类的对象

new Student("zhangsan",21)

new Student("zhangsan",21)

这两个对象是可以存到HastSet中的,因为它们是new的新的 所以他们的哈希值是不同的,

但这不是我们希望的,所以我们要在Student类中重写hashCode()方法和equals()方法

时间: 2024-10-16 21:19:40

HashSet 哈希值的相关文章

利用哈希值封死飞秋等客户端软件

实验环境: AD:server2012 r2 测试客户端:xp server2012r2 因为没有2008r2的环境临时用2012r2 代替,其实都是一样的.测试客户端用server2012r2 测试啦跟win7一样的,同时也测试了一下xp 因为好多2008以后的自带策略在xp下是不被支持的.(很庆幸这个策略是被xp支持的) 由于没有飞秋软件.利用.EXE的yy安装程序测试,飞秋也只是一个.EXE的运行程序而已一样的操作步骤 一. 利用AD组策略软件限制策略. 在组策略对象里面新建一条策略 右键

C语言获取文件的SHA1哈希值

安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA).对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要.当接收到消息的时候,这个消息摘要可以用来验证数据的完整性.在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要. SHA1有如下特性:不可以从消息摘要中复原信息:两个不同的消息不

上传图片用图片文件的对象hash哈希值判断图片是否一样,避免重复提交相同的图片到服务器中

/// <summary> /// 上传企业logo /// </summary> /// <returns></returns> public ActionResult UploadLogo(string comid) { HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; if (files.Count == 0) return Json("没有没文件

图像相似度计算之哈希值方法

感知哈希算法(perceptual hash algorithm),它的作用是对每张图像生成一个"指纹"(fingerprint)字符串,然后比较不同图像的指纹.结果越接近,就说明图像越相似. 实现步骤: 1.      缩小尺寸:将图像缩小到8*8的尺寸,总共64个像素.这一步的作用是去除图像的细节,只保留结构/明暗等基本信息,摒弃不同尺寸/比例带来的图像差异: 2.      简化色彩:将缩小后的图像,转为64级灰度,即所有像素点总共只有64种颜色: 3.      计算平均值:计

C# 计算字符串的哈希值(MD5、SHA)

一.关于本文 本文中是一个类库,包括下面几个函数: 1)计算32位MD5码(大小写):Hash_MD5_32 2)计算16位MD5码(大小写):Hash_MD5_16 3)计算32位2重MD5码(大小写):Hash_2_MD5_32 4)计算16位2重MD5码(大小写):Hash_2_MD5_16 5)计算SHA-1码(大小写):Hash_SHA_1 6)计算SHA-256码(大小写):Hash_SHA_256 7)计算SHA-384码(大小写):Hash_SHA_384 8)计算SHA-512

图像相似度计算之哈希值方法OpenCV实现

http://blog.csdn.net/fengbingchun/article/details/42153261 图像相似度计算之哈希值方法OpenCV实现 2014-12-25 21:27 2959人阅读 评论(0) 收藏 举报  分类: OpenCV(72)  Image Processing(18)  版权声明:本文为博主原创文章,未经博主允许不得转载. 感知哈希算法(perceptual hash algorithm),它的作用是对每张图像生成一个“指纹”(fingerprint)字

JS 字符串的 哈希值

在做一个小游戏的时候, 刚开始用了 随机数,  感觉很假,  输入姓名, 点击确定, 获取 随机数, 现在用了 字符串的 哈希值, 不管在哪 输入, 输入多少次, 最终的结果都是一样的. 因为 姓名   对应的 哈希值 是不变 用姓名的哈希值 与 那个 数组  求余. //获取字符串的 哈希值 function getHashCode(str,caseSensitive){ if(!caseSensitive){ str = str.toLowerCase(); } var hash = 131

Java中的哈希值

下面都是从String类的源码中粘贴出来的 1 private int hash; // Default to 0 2 public int hashCode() { 3 int h = hash; 4 if (h == 0 && value.length > 0) { 5 char val[] = value; 6 for (int i = 0; i < value.length; i++) { 7 h = 31 * h + val[i]; 8 } 9 hash = h; 1

哈希值 是什么?哈希值是什么东西啊?具体怎么识别?怎么用?

原文地址:http://zhidao.baidu.com/link?url=8WuapbywDbanA5cc7mvxPwr8VVEHUZ7DOxpE1-aLNaThQCJMbyvnaN72jD8yb54gtV45XeBu_9l4aUbQDXNAyK 哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值.哈希值是一段数据唯一且极其紧凑的数值表示形式.如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值.要找到散列为同一个值的两个不同的输入,在计