hashcode相关内容
我一直在调查java中的 hashCode()方法,并发现String类奇怪的方法。源代码如下: public int hashCode(){ int h = hash; if(h == 0&& value.length> 0){ char val [] = value; for(int i = 0; i
..
来自链接: http ://www.tutorialspoint.com/java/java_string_hashcode.htm Java中hashCode和equals方法之间的关系 好hashCode()实现 但是我无法理解哈希码。 以下是一个例子: public class StringDemo { public static void main(
..
我最近在这里阅读了一些关于Java String类'哈希码的内容,而且我还没有找到这个信息:当字符串的长度大于32时会发生什么(我知道溢出会发生,但是哈希键,会发生什么)? 例如,我需要散列长度在20到120个字符之间的字符串,以将它们用作散列键。我是否需要使用BigInteger实现自己的算法? 另外,因为我可能有30k到80k之间的字符串,可能更多,通常的String hashcode
..
这两个代码段之间的区别是什么? 代码段1: Object o = new Object(); int i = Objects.hashCode(o); Snippet 2: Object o = new Object(); int i = o.hashCode(); 解决方案 容忍空值 唯一的区别是,如果o为null,
..
我有一个类,我已经覆盖了hashCode方法和equals方法。 equals方法的行为与我期望的一样,但hashCode方法似乎没有像我期望的那样运行。我假设因为我的期望不正确,但不确定原因。以下是重写的方法: public class Car extends SomeBaseClass实现Cloneable,Serializable { private static final lo
..
实现类似方法的最快和更强大(就唯一性而言)的方法是什么? public abstract String hash(String [] values); values [] 数组有100到1,000个成员,每个成员只有几十个字符,并且每次在不同的 values [] 数组中,该方法需要运行大约10,000次/秒。 是否应使用 StringBuilder 缓冲区
..
我理解hashCode的想法以及为什么需要它。但是我对如何为Generic对象计算hashCode感到困惑。所以这是我的问题。如果我有一个String,我可能会使用以下函数来计算hashCode, int hash = 7; for(int i = 0; i
..
如果我有一个地图和一个对象作为地图键,是默认的哈希和等于方法吗? class EventInfo { 私人字符串名称; private Map info } 然后我想创建一张地图: Map map = new HashMap();
..
HashSet 类有一个 add(Object o)方法,不是从另一个类继承的。该方法的Javadoc说明如下: 如果指定的元素尚不存在,则将其添加到此集合中。更正式地说,如果此集合不包含元素 e2 ,那么将指定的元素 e 添加到此集合中c>(e == null?e2 == null:e.equals(e2))。如果此集合已包含该元素,则调用将保持集不变并返回 false 。 换句话说
..
Bert Bates和Kathy Sierra的SCJP 6学习指南在第554页(以及其他要求中)指出 x.hashCode()!= y.hashCode()要求x.equals(y)== false 。 但是Javadoc for Object没有明确提到这样的要求。引用: 如果两个对象根据equals(Object)方法相等,那么在两个对象中的每一个上调用hashCode方法必须产
..
我想获得String的唯一数字表示。我知道有很多方法可以做到这一点,我的问题是你认为哪种方式最好?我不想有负数 - 所以java中的hashcode()函数不太好,虽然我可以覆盖它...但我宁愿不要因为我不那么自信而且不想意外打破一些东西。 我的字符串都是语义网络的URIS。数字表示的原因是当我在页面上显示URI的数据时,我需要将某些内容传递给查询字符串或放入我的javascript中的各个
..
编辑:准备我的对象以便在HashMap中使用。 在阅读了一些关于如何生成哈希码的内容之后,我现在很困惑。我的(可能是微不足道的)问题是,当我有一个可以使用的字段时,我应该如何实现hashCode方法?我可以直接使用fiels吗? 如果我理解正确,hashCode的值在对象的生命周期内不得改变,而且我只有一个适合这个的ID,但我已经在其他地方读过,那个人不应该使用ID ... despide
..
我正在使用Java 7,我在下面有以下课程。我正确地实现了等于和 hashCode ,但问题是等于在下面的main方法中返回 false 但 hashCode 返回两个对象的相同哈希码。我可以让更多的眼睛看这堂课,看看我在这里做错了吗? 更新:我更换了我用自己的哈希函数调用 Objects.hash 方法的行: chamorro.hashCode()+ english.hashCode()+
..
假设我有以下课程: class ABC { private int myInt = 1; private double myDouble = 2; private String myString =“123”; private SomeRandomClass1 myRandomClass1 = new ... private SomeRandomClass2 myRand
..
我想知道构造 ConcurrentHashMap 的参数: initialCapacity 默认为16(理解)。 loadFactor 默认为0.75 。 concurrencyLevel 默认为16。 我的问题是: 应使用什么标准来调整 loadFactor up or down? 我们如何确定并发更新线程的数量? 应该使用什么标准来调整 concurrencyLeve
..
有没有办法可以在java中使用字符串的哈希码,并重新创建该字符串? 例如。类似这样的事情: String myNewstring = StringUtils.createFromHashCode(“Hello World”.hashCode()); if(!myNewstring.equals(“Hello World”)) System.out.println(“嗯,出错了:
..
可能重复: 如何用Java计算hashCode() 我发现Java中根类 Object 的 hashCode()方法没有实现: public native int hashCode(); 如果我有对象a 和对象b ,我怎么知道 a.hashCode()和 b.hashCode()不使用 System.out.println()的值?只是通过 hashCode
..
我正在寻找 Object.hashCode()的算法。 此代码在中是原生的的 Object.java 。 这是因为 (a)代码是汇编 - 从未进入Java或任何其他HLL 或 (b)它只是不公开 ? 在任何一种情况下,我都希望得到“如何 hashCode()的算法(伪代码或一些详细说明)计算“ - 计算中的参数和计算本身是什么? 请注意:这是 ha
..
我定义了两个类,它们都包含对另一个对象的引用。它们看起来与此类似(这是简化的;在我的真实域模型中,A类包含B的列表,每个B都有一个返回到父A的引用): 公共等级A { public B b; public String bKey; @Override public int hashCode(){ final int prime = 31; int result =
..
过去几个小时我一直在阅读有关哈希码函数的内容,并且在自定义哈希码实现中使用素数作为乘数已经积累了一些问题。如果我能对以下问题有所了解,我将不胜感激: 在评论 @mattb的答案,@ hstoerr主张使用更大的素数(例如524287)而不是普通的素数31.我的问题是,鉴于以下实施一对或多个元素的哈希码函数: @Override public int hashCode(){ fi
..