hashcode相关内容
我试图在R中实现功能散列来帮助我处理文本分类问题,但我不确定是否按照它的方式进行。我的代码的一部分是基于这个职位:映射的哈希函数整数到给定范围?。 我的代码: random.data = function(n = 200,wlen = 40,ncol = 10){ random.word = function(n){ paste0(sample(c(letters,0:9),
..
如果您查看hashMap中java的hashCode方法,您会发现: $ b $ pre $ public int hashCode(){ int h = 0; Iterator> i = entrySet()。iterator(); while(i.hasNext()) h + = i.next()。hashCode(); 返回h; $ b 因此,当
..
我一直在阅读有关 上的String.hashCode()的文档 http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/String .java 尝试从相同的字符串获得相同的结果,但我没有得出任何令人满意的结果。 在Objective-C中[NSString hash]给出了
..
在我的程序中,我处理了大量 n 大小的列表,它们都是[1,..., n ]的排列组合。我的问题是我把这些置换放在 HashMap s和 HashSet s中,我需要一个很好的 hashCode()避免了太多的冲突。 所有我认为会导致碰撞或溢出的解决方案。 如何为排列写一个好的hashCode? 解决方案 您是否尝试过使用'旋转散列'?您可以调整桶的旋转量,以查看它是否与哈希分布有很
..
在使用String.hashCode()进行测试时,我注意到它没有雪崩效果。我知道有一个詹金斯散列的Java端口,但我想知道是否有一个哈希函数,也许在一些Apache库或其他东西,有这个属性。 编辑:我正在寻找一个函数,展现此属性,并返回一个32位(或64位)整数(例如,像Jenkins散列)。我没有将它用于密码学,并且我不打算一般替换String.hashCode。我只是认为hashCod
..
我刚刚意识到使用 Stream.reduce(...)。问题是散列码的初始种子是 1 ,它不是累加器的标识符。 List.hashCode()的算法 : int hashCode = 1; (E e:list) hashCode = 31 * hashCode +(e == null?0:e.hashCode()); 您可能会觉得以下内容是正确的,但事实并非如此
..
在Hashmap中,提供的键的哈希码用于将值放入散列表中。在Hashset中,obects哈希码用于将值放置在底层哈希表中。即hashmap的优点是你可以灵活地决定你想要什么作为关键,这样你就可以做出像这样的好事情。 地图<字符串,玩家GT; players = new HashMap(); 这可以将玩家名称等字符串映射到玩家本身。
..
我写了一个类,如 public class HashCodeImpl { public int hashCode(){ 返回1; public static void main(String [] args){ // TODO自动生成的方法存根 HashCodeUtil h = new HashCodeUtil( ); HashCodeUtil h1 = new
..
我只能实现equals()而不是hashCode(),如果我只需要比较对象而不打算将对象放入任何基于散列的容器中? 似乎所有的Java圣经都说这两个必须一起实施。 :($ / b> 我的顾虑: - 如果我总是用equals()实现hashCode(),那么会有很多代码没有真正使用,并且没有单位测试覆盖(如果不使用,我不打算单元测试hashCode()) - 直到我将对象放入基于散列
..
如果我没有记错,Object()类型的对象的java中的默认hashCode()实现是返回对象的内存地址。当我们创建自己的类时,我读到我们想要重写hashCode(),以便当我们将它们插入到像HashMap()这样的与散列相关的集合中时,它将正常工作。但为什么内存地址不好? 当然,我们会偶然发现内存不足,而且会发生碰撞,但唯一一种我认为这是个问题的情况是您正在处理数据的TONS并且只有很少的
..
在阅读关于覆盖 GetHashCode()的所有关于StackOverflow的问题和解答之后,我写了下面的扩展方法,以便轻松方便地覆盖 GetHashCode ): public static class ObjectExtensions { private const int _seedPrimeNumber = 691; private const int _fieldPr
..
如果我运行下面的代码,那么输出是2,这意味着该集合包含2个元素。但是我认为这个集合应该包含1,因为基于 hashcode()值以及 .equals()方法这两个对象是相等的。 看起来像我理解中的一些明显的错误? package HELLO; import java.util.HashSet; import java.util.Set; public class Tes
..
我为创建的类编写 hashCode()方法遇到了一些麻烦。这个类意味着在TreeSet中使用,因此它实现了Comparable。该类有以下变量: public class Node实现了Comparable { 矩阵矩阵; int [] coordinates = new int [2]; 节点父; int深度; 诠释成本; 以下是 compar
..
当我们使用 put()在 HashMap 类中放置一个关键实例时,将“key”和一个Value实例声明为“value” code>方法, HashMap 类在内部是做什么的。当我们说 hashMap.get(key)? 编辑:我不想在这里找到细节,基本上试图理解更大的图像和 equals()和 hashcode() code> put()和 get()操作中的code方法。 解决方案
..
基本上,我试图创建一个唯一对象的集合。我有一个聪明的想法,就是使用一个带有对象属性名称的JavaScript对象。如 set [obj] = true; 这可以起到一定的作用。它对字符串和数字非常有用,但对于其他对象,它们似乎都“散列”到相同的值并访问相同的属性。有什么方法可以为对象生成唯一的哈希值?字符串和数字如何做,我可以重写相同的行为吗?解决方案 JavaScri
..
许多书籍和教程都指出,散列表的大小必须是在所有桶中均匀分配密钥的首要条件。但Java的 HashMap 总是使用2的幂。它不应该使用素数?有什么更好的,作为散列表大小的“主要”或“两个幂”?有效地掩盖了哈希码的最高位。因此,在这种情况下,低质量的哈希函数可能表现得尤其糟糕。 Java的 HashMap 通过不信任对象的 hashCode()实现和对其结果应用第二级哈希处理: 应用一个给
..
我经常看到如下代码: int hashCode(){ return a ^ b; } 为什么选择XOR? 这个真值表解释了为什么: AB AND 0 0 0 0 1 0 1 0 0 1 1 1 AB 0 0 0 0 1 1 1 0 1 1 1 1 AB XOR 0 0 0 0 1 1
..
我很好奇为什么 Object.toString()返回这个值: return getClass()。getName()+“@”+ Integer.toHexString(hashCode()); 与此相反: 将散列码显示为十六进制而不是十进制数可以带来什么好处吗? 解决方案 Object.hashCode 用于计算基于对象所在的内存
..
我有一个整数的二维数组。我希望他们被放入一个HashMap。但我想从基于数组索引的HashMap中访问元素。例如: 对于A [2] [5], map.get(2,5),它返回与该键相关联的值。但是,我如何使用一对密钥创建一个hashMap?或者一般来说,我可以通过使用get(key1,key1,key2,...,keyN),Value)来获取多个键: Map
..
我试图想出一个很好的字符串散列函数。我认为总结字符串中前五个字符的unicode值可能是个好主意(假设它有五个字符,否则停止它的结束位置)。这是一个好主意,还是一个坏的? 我在Java中这样做,但我不会想象这会有很大的不同。 解决方案 通常哈希不会执行和,否则 stop 和 pots 将具有相同的散列。 并且您不会将其限制为前n个字符,房屋将具有相同的散列。 通常,散列值
..