0 0

如何计算一个字符串的四位hashcode5

有没有办法计算任意字符串的四位hashcode,就是说我需要一个hash算法,计算出来的hashcode始终只有四位(或者5,6位等某固定位数)。而且要保证不同字符串计算出的hashcode不冲突(也就是不能相同)。
2013年8月28日 11:34

2个答案 按时间排序 按投票排序

0 0

不可能的,这个

2013年8月30日 13:51
0 0

任意字符串hash到4位数而且不能有碰撞显然是不可能的
4位数可以储存10^4个key 如果你的字符串组合超过10000就不可能没有碰撞了
hash的意义在于尽量快速的算出一个key 而且碰撞在合理范围内 以得到优秀的性能

2013年8月29日 08:53

相关推荐

    2021-2022计算机二级等级考试试题及答案No.18823.docx

    - **String 类型**:在Java中,`String`是一个引用类型,它可以保存文本字符串,并支持各种字符串操作。 ### 18. 输入流关闭 - **InputStream.close()**:用于关闭输入流并释放系统资源。 ### 19. HashCode 和 ...

    搜狗公司java笔试题

    二进制每四位对应一个十六进制位,不足四位的高位补零。101.00101对应的十六进制是5.2(因为101对应5,00101对应2)。 2. **foo()时间复杂度分析**:代码中嵌套了两个循环,外层循环是以2为基数翻倍增长,内层循环...

    GitHub 上标星 115k+ 的 Java 教程.pdf

    使用 new String("abc") 创建的字符串对象不在 String Pool 中,而使用 String.valueOf("abc") 创建的字符串对象在 String Pool 中。 StringBuffer 和 StringBuilder 是可变的字符串类,StringBuffer 是线程安全的...

    23年Java基础面试题

    抽象类不一定包含抽象方法,但至少包含一个抽象方法的类必须声明为抽象类。抽象类不能实例化,只能被其他类继承。 这些Java基础面试题涵盖了语言的关键概念,对于准备Java初级程序员的面试非常有帮助。深入理解和...

    java常见试题

    Math.round()方法用于四舍五入一个数字,它可以将一个浮点数转换为整数。 switch语句 switch语句可以用于char、byte、short、int类型的变量,也可以用于String类型的变量。 数组和字符串 数组和字符串都有length...

    Java(达内)面试题集锦

    - 当两个字符串字面量相等时,它们指向同一个字符串常量池中的对象。 - 使用 `==` 操作符可以直接比较两个字符串对象是否引用同一个对象。 ### 19. String 类的实现 - `String` 类被定义为 `final`,意味着它不能...

    common-lang3.jar

    `common-lang3.jar`就是这样一个广泛使用的工具库,它包含了大量实用的Java语言工具类,极大地简化了日常编程任务。这个库主要服务于JDK 7和8的64位环境,提供了许多增强和扩展Java标准库的功能。 一、`common-lang...

    java面试笔记整理,包含java,redis,kafka等

    - **StringJoiner用于连接字符串,提供了一种更简洁的方式来构建复合字符串。** #### 十九、String类常用方法 - **length():** 返回字符串长度。 - **charAt(int index):** 返回指定索引处的字符。 - **concat...

    深圳大圣网络发展有限公司笔试题

    根据提供的文件信息,我们可以从中提炼出与Java编程相关的多个知识点,包括访问修饰符、匿名内部类、静态嵌套类、逻辑运算符、集合框架、断言、字符串操作、数学函数、类型转换、异常处理等。下面将逐一进行详细介绍...

    java面试题

    3. **字符串比较:** `String` 类提供了`equals(Object obj)`方法用于比较两个字符串是否相等,而`==`运算符用于比较两个对象引用是否指向同一个对象。 **应用场景:** - 当需要频繁地比较字符串内容时,使用`equals...

    java最全的面试宝典

    "`之后,`s`引用了一个新的字符串`"Helloworld!"`。原始的字符串`"Hello"`并没有发生改变,Java中的字符串是不可变的。 #### 三、Java中的多态 - **Java中实现多态的机制**:Java中的多态主要通过继承和接口实现。...

    java面试题大全好多经典的试题

    - 使用`new String()`来创建一个新的字符串对象。 - 使用字符串字面量(如:"Hello"),这种方式会在常量池中查找是否存在相同的字符串,如果不存在则创建。 例如: ```java String str1 = new String("Hello"); ...

    最新最全的java面试题汇总

    在Java中,使用`new String()`创建字符串会创建一个新的字符串对象,并且还会在常量池中创建一个相同的字符串副本。而直接使用`String s = "xyz";`创建的字符串只会在常量池中创建,不会额外创建对象。 ### 8. `...

    java 面试宝典 免费提供

    `创建了一个字符串常量池中的对象和一个堆中的对象。 #### 三十四、接口与抽象类 - 接口可以继承接口。 - 抽象类可以实现接口。 - 抽象类不能继承具体的类(除非使用`extends`关键字)。 #### 三十五、Java接口与...

    java面试题集总结

    2. **`&`**:按位与运算符,同时也是一个逻辑与运算符,但它不是短路运算符,即使左侧表达式为假,右侧表达式也会被计算。 #### 五、集合框架:`Collection` 与 `Collections` 1. **`Collection`**:接口,是Java...

    Java基础面试题整理(附答案)

    - 在Java中,字符串是不可变的,这意味着一旦创建了一个字符串对象,它的内容就不能改变。 #### 四、float类型的赋值 - `float f = 3.4;` 这种赋值方式是不正确的,因为默认情况下,数字常量3.4被视为`double`类型...

Global site tag (gtag.js) - Google Analytics