`
tk_it_2012
  • 浏览: 3067 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

String->HashCode

    博客分类:
  • java
 
阅读更多
String的hashCode算法是
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
其中s[i]是第i个字符。n是String长度。并不是3楼说的“对象存储的物理地址”

hashCode很容易冲突。因为hashCode方法返回类型是int。所以一个长的字符串hashCode值溢出Interger.MAX_VALUE后会只保留低位。所以非常有可能有个很长的字符串和一个很短的字符串的hashCode是一样的。而且这种情况非常容易出现。
分享到:
评论

相关推荐

    java面试题大全(j2se->jsp->ssh->oracle)

    - 如果自定义类作为 `Set` 的元素,则需要重写 `equals()` 和 `hashCode()` 方法以确保一致性和正确性。 - `==` 操作符用于比较两个对象的引用是否相同,而不是用来判断 `Set` 中元素的唯一性。

    string-hashcode:java.lang.String.hashCode

    安装npm install string-hashcode 例子var hashCode = require ( 'string-hashcode' ) ;var s = 'abc' ;console . log ( s . hashCode ) ; // undefinedvar code = hashCode ( s ) ;console . log ( s . hashCode ) ...

    java 包装类发给的发广告豆干

    - byte -> Byte - boolean -> Boolean - short -> Short - char -> Character - int -> Integer - long -> Long - float -> Float - double -> Double 2. 包装类的主要用途: a) 作为与基本数据类型对应的...

    java8看不到源码-promises:Promisemonad的一个小型java8实现。Promise表示异步操作的结果

    -> { String helloWorld = "hello world"; long n = 500; System.out.println("Sleeping " + n + " ms example1"); Thread.sleep(n); return helloWorld; }); Promise<Integer> promise2 = promise.bind(string -> ...

    Java17新特性详解含示例代码(值得珍藏)

    default -> throw new IllegalArgumentException("Invalid day"); }; } ``` 4. **弃用API的删除** - Java 17开始逐步移除长期废弃的API,以保持语言的简洁性和现代性。例如,`javafx.application.Platform....

    lombok-jarjar.zip

    在 Eclipse 中,可以通过 Help -> Install New Software -> Add -> Archive... 选择下载好的 "lombok.jar" 文件进行安装。 2. **引入依赖**:在 Maven 或 Gradle 项目中,需要添加 Lombok 的依赖。如果是 Maven,...

    Lombok安装及使用

    - 下载Lombok.jar文件,然后在Eclipse中通过`Help` -> `Install New Software` -> `Add` -> `Archive...`添加Lombok插件。 - 配置项目:同样需要在项目的`pom.xml`或`build.gradle`中添加Lombok依赖。 3. **构建...

    hash-generator-js:一个Vue.js应用程序,其中包含Java中String类的hashCode方法的javascript实现

    哈希生成器js 一个Vue.js应用程序,其中包含Java中String类的hashCode方法的javascript实现构建设置# install dependenciesnpm install# serve with hot reload at localhost:8080npm run dev# build for production...

    Java8 Stream流的三个步骤操作.docx

    Stream<Integer> integerStream = Stream.iterate(0, x -> x + 2); ``` - `generate()`生成包含无限随机数的流: ```java Stream.generate(() -> Math.random()); ``` 二、中间操作 中间操作不会立即执行,...

    获取字符串的哈希-JavaScript开发

    与Java的String#hashCode()类似。 安装$ npm install @ sindresorhus / string-hash用法const stringHash string-hash获取字符串的哈希值使用非加密哈希函数FNV-1a。 与Java的String#hashCode()类似。 安装$ ...

    equals与hashCode方法讲解

    例如,在 String 类中,hashCode 方法的实现是根据字符串的字符序列来计算哈希码。 public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[] = value; for (int i = 0; i ; i++) ...

    String方法使用方法例子续--android

    - `hashCode()`: 返回字符串的哈希值,常用于哈希表的快速查找。 - `getBytes()`: 将字符串转换为字节数组,通常用于文件操作或网络传输。 - `getBytes(Charset charset)`: 使用指定的字符集转换字符串。 在...

    Eclipse简明教程.doc

    再在新包内创建Java类,通过New -> Class,输入类名(首字母大写),如果需要main方法,勾选"public static void main(String[] args)"选项,然后点击Finish。完成这些步骤后,就可以在新建的类中添加代码,如`...

    Eclipse教程

    若想更改Eclipse的一些设置,可以访问“Window -> Preferences”,在这里可以修改工作空间字符集为UTF-8,调整编辑器字体大小等。 此外,Eclipse还支持导入其他Eclipse项目和单独的Java源文件,以及制作jar包和导入...

    java基础问答 txt

    - Java 中的数据类型可以按照一定的规则进行转换,例如:`byte -> short -> int -> long -> float -> double`。 - 字符型 `char` 可以直接转换为整型 `int`。 #### 10. String 类 - `String` 类在 Java 中表示不可...

    Kotlin语言教程基础语法案例.docx

    val multiply: (Int, Int) -> Int = { a, b -> a * b } println(multiply(3, 4)) // 输出: 12 ``` #### 五、类和对象 ##### 4.1 类 Kotlin 的类定义非常灵活,可以包含属性和方法。 ```kotlin class Dog(val ...

    Java的RxJava库操作符的用法及实例讲解

    .map(s -> s.hashCode()) .subscribe(i -> System.out.println(Integer.toString(i))); ``` 这里,Subscriber接收并打印的是字符串的哈希码,而不是原始字符串。通过多个`map`操作符,我们可以实现更复杂的转换链...

    Kotlin 编程三分钟入门

    in 10..20 -> println("x is outside the range") else -> println("none of the above") } ``` 3. **循环**: - `while`和`do...while`循环与Java相同。 - `for`循环在Kotlin中更为强大,可以遍历集合或进行...

    java中的String类常用方法解析(一)

    - `hashCode()`:返回字符串的哈希值,常用于散列数据结构如HashMap。 13. **比较** - `compareTo(String anotherString)`:按照字典顺序比较字符串,返回负数、零或正数表示当前字符串小于、等于或大于另一个...

Global site tag (gtag.js) - Google Analytics