集合 Set:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素。 用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。 特点 Java的Set接口继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,主要有HashSet和TreeSet两种实现。 在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。 T … 继续阅读
实现简单的集合Set
回复
集合 Set:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素。 用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。 特点 Java的Set接口继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,主要有HashSet和TreeSet两种实现。 在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。 T … 继续阅读
哈希冲突 由于哈希算法被计算的数据是无限的,而计算后的结果范围有限,因此总会存在不同的数据经过计算后得到的值相同,这就是哈希冲突。 简言之,不同的输入,经过哈希函数计算,得到相同的哈希值,这就是哈希冲突了。 解决冲突 解决哈希冲突的方法一般有:开放定址法、链地址法(拉链法)、再哈希法、建立公共溢出区等方法。 2.1 开放定址法 从发生冲突的那个单元起,按照一定的次序,从哈希表中找到一个空闲的单元。 … 继续阅读
Hash 哈希函数 Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。 这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。 简言之:把任意长度的 … 继续阅读