草庐IT

java - 直接使用 HashCode 访问 HashSet? ( java )

您好,我想知道如果您拥有要查找的对象的Hashcode,是否可以直接访问HashSet的内容,有点像将HashCode用作HashMap中的键。我想它可能会像这样工作:MyObjectobject1=newMyObject(1);SetMyHashSet=newHashSet();MyHashSet.add(object1)inthash=object1.getHashCodeMyObjectobject2=MyHashSet[hash]???谢谢!编辑:感谢您的回答。好吧,我知道我可能会稍微插入HashSet的契约,但是对于这个特定的项目,相等性完全由哈希码决定,而且我确信每个哈希码

java - 获取 java.rmi.UnmarshalException : unrecognized method hash: method not supported by remote object

我是RMI技术的新手。当我运行rmi客户端程序时,出现异常:java.rmi.UnmarshalException:unrecognizedmethodhash:methodnotsupportedbyremoteobject。我用的是jdk1.5远程方法的参数是序列化对象。这些是服务器代码...这是远程接口(interface)packageinterfacepackage;importjava.rmi.Remote;importjava.rmi.RemoteException;publicinterfaceServerInterfaceextendsRemote{publicvoi

java - HashMap 容量即使达到阈值也不会增加

Javadocsays-当哈希表中的条目数超过负载因子和当前容量的乘积时,重新哈希哈希表在下面的程序中-HashMapmap=newHashMap();inti=1;while(iKey是Integer类型,在插入第13到第15个元素时,HashMap容量保持为16,阈值保持为12,为什么?在map中添加第13个元素后的调试屏幕截图-argsString[0](id=16)mapHashMap(id=19)entrySetnullhashSeed0KeySetnullloadFactor0.75modCount13size13tableHashMap$Entry[16](id=25)t

java - 使用带有 key 的 ripemd160 在 Java 中模拟 php 函数 hash_hmac 中的字符串哈希

我正在尝试使用ripemd160对Java中的字符串进行哈希处理,以模拟以下php的输出:$string='string';$key='test';hash_hmac('ripemd160',$string,$key);//outputs:37241f2513c60ae4d9b3b8d0d30517445f451fa5尝试1最初我尝试使用以下方法来模拟它...但是我不认为可以使用ripemd160作为getInstance`算法?或者可能是,我只是没有在本地启用它?publicStringsignRequest(Stringuri,Stringsecret){try{byte[]key

Java:最简单的整数哈希

我需要一个快速的整数散列函数:inthash(intn){return...;}Java中是否已经存在一些东西?我需要的最少属性是:hash(n)&1在与一堆连续的n值一起使用时不会出现周期性。hash(n)&1为0或1的可能性大致相等。 最佳答案 HashMap,以及Guava的基于hash的utilities,在hashCode()结果上使用以下方法来改善位分布并防御较弱的哈希函数:/**ThismethodwaswrittenbyDougLeawithassistancefrommembersofJCP*JSR-166Expe

java - 完善的哈希函数和好处

考虑这个类:publicfinalclassMyDate{privateintyear,month,day;publicMyDate(intyear,intmonth,intday){this.year=year;this.month=month;this.day=day;}//Somestuff@OverridepublicinthashCode(){return((year这是一个完美的哈希函数,因为在内存中我们有:因此,在红色中,5位存储日(1到31),在黄色中,4位存储月(1到12),其他存储年(1到16777215)。完美的hashFunction有什么好处?据我所知,它可以

java - 为什么 HashMap 中更高的负载因子会增加查找成本?

来自HashMap的JavaDoc:Asageneralrule,thedefaultloadfactor(.75)offersagoodtradeoffbetweentimeandspacecosts.Highervaluesdecreasethespaceoverheadbutincreasethelookupcost(reflectedinmostoftheoperationsoftheHashMapclass,includinggetandput).如果我们有更高的值,为什么会增加查找成本? 最佳答案 哈希表的LoadFac

java - Java/Scala 中的高性能字符串哈希函数

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭去年。Improvethisquestion在Java/Scala中寻找高性能字符串散列函数-比MurmurHash家族的函数更快的东西,不需要加密强度高,只需要分布良好。有什么建议吗?

java - 为什么HashMap的get()在Java中会同时比较hash值和key?

我在看JDK8中HashMap的实现。在get方法中,我看到下面一行用于查找与给定键匹配的节点。if(e.hash==hash&&((k=e.key)==key||(key!=null&&key.equals(k))))为什么需要将哈希值与key进行比较?为什么上面的行不写成:if(((k=e.key)==key)||(key!=null&&key.equals(k)))有没有解释为什么这样做?谢谢。 最佳答案 引起您困惑的似乎是两件事:1。比较哈希值(通常非常)比直接比较键快。2。在==运算符中,如果第一个条件为假,则不会检查第二

java - 如何获取 Java Hashmap 上冲突次数的指标?

我正在实现自定义哈希函数,如果我在HashMap存储桶中发生多次冲突,我怎么知道存储桶中存储了多少元素? 最佳答案 API中没有对此的直接支持。用于存储桶的成员变量table甚至不是公开的,因此扩展类不会让你走得太远。假设您正在评估哈希函数而不是在生产代码中这样做,您可以使用反射来传递这些约束。我设法打印了桶中的内容。从这一点来看,分析分布指标应该不难。这是代码:测试驱动程序:importjava.lang.reflect.Field;importjava.util.*;classTest{publicstaticvoidmain(