`
feigme
  • 浏览: 155516 次
  • 性别: Icon_minigender_1
  • 来自: 球面世界
社区版块
存档分类
最新评论

HashCode 理解测试

    博客分类:
  • Java
阅读更多
java 代码
  1. public class HashCodeTest {   
  2.   
  3.     /**  
  4.      * @throws java.lang.Exception  
  5.      */  
  6.     @Before  
  7.     public void setUp() throws Exception {}   
  8.   
  9.     /**  
  10.      * @throws java.lang.Exception  
  11.      */  
  12.     @After  
  13.     public void tearDown() throws Exception {}   
  14.        
  15.     @Test  
  16.     public void testHashCode(){   
  17.         String a = new String("AA");   
  18.         String b = a;   
  19.         String c = new String("AA");   
  20.         String d = new String("BB");   
  21.         String e = "AA";   
  22.         String f = "AA";   
  23.            
  24.         System.out.println("String a hashcode is : "+ a.hashCode());   
  25.         System.out.println("String b hashcode is : "+ b.hashCode());   
  26.         System.out.println("String c hashcode is : "+ c.hashCode());   
  27.         System.out.println("String d hashcode is : "+ d.hashCode());   
  28.         System.out.println("String e hashcode is : "+ e.hashCode());   
  29.         System.out.println("String f hashcode is : "+ f.hashCode());   
  30.            
  31.         System.out.println("a.equals(b) : "+ a.equals(b));   
  32.         System.out.println("a==b : "+ (a==b));   
  33.         System.out.println("a.equals(c) : "+ a.equals(c));   
  34.         System.out.println("a==c : "+ (a==c));   
  35.         System.out.println("b.equals(c) : "+ b.equals(c));   
  36.         System.out.println("b==c : "+ (b==c));     
  37.         System.out.println("a.equals(e) : "+ a.equals(e));   
  38.         System.out.println("a==e : "+ (a==e));   
  39.         System.out.println("e.equals(f) : "+ e.equals(f));   
  40.         System.out.println("e==f : "+ (e==f));   
  41.            
  42.            
  43.         Person p1 = new Person();   
  44.         Person p2 = p1;   
  45.         Person p3 = new Person();   
  46.            
  47.         System.out.println("Model p1 hashcode is : "+ p1.hashCode());   
  48.         System.out.println("Model p2 hashcode is : "+ p2.hashCode());   
  49.         System.out.println("Model p3 hashcode is : "+ p3.hashCode());   
  50.         System.out.println("p1.equals(p2) : "+ p1.equals(p2));   
  51.         System.out.println("p1==p2 : "+ (p1==p2));   
  52.         System.out.println("p1.equals(p3) : "+ p1.equals(p3));   
  53.         System.out.println("p1==p3 : "+ (p1==p3));   
  54.         System.out.println("p2.equals(p3) : "+ p2.equals(p3));   
  55.         System.out.println("p2==p3 : "+ (p2==p3));   
  56.     }   
  57.   
  58. }  

打印的结果为:

java 代码
  1. String a hashcode is : 2080  
  2. String b hashcode is : 2080  
  3. String c hashcode is : 2080  
  4. String d hashcode is : 2112  
  5. String e hashcode is : 2080  
  6. String f hashcode is : 2080  
  7. a.equals(b) : true  
  8. a==b : true  
  9. a.equals(c) : true  
  10. a==c : false  
  11. b.equals(c) : true  
  12. b==c : false  
  13. a.equals(e) : true  
  14. a==e : false  
  15. e.equals(f) : true  
  16. e==f : true  
  17. Model p1 hashcode is : 12934710  
  18. Model p2 hashcode is : 12934710  
  19. Model p3 hashcode is : 28064776  
  20. p1.equals(p2) : true  
  21. p1==p2 : true  
  22. p1.equals(p3) : false  
  23. p1==p3 : false  
  24. p2.equals(p3) : false  
  25. p2==p3 : false  

结论:

待续。。。

分享到:
评论

相关推荐

    java 基础之(equals hashcode)

    总的来说,理解和正确使用 `equals()` 和 `hashCode()` 是Java开发者必备的基础知识,这对于编写健壮、高效的代码至关重要。在进行对象比较和使用哈希表时,这两个方法的合理实现可以极大地提高程序的性能和正确性。

    Java中的equals()和hashCode()契约Ja

    - 测试`equals()`和`hashCode()`的正确性,可以使用JUnit的EqualsTester类或自定义测试用例。 总之,`equals()`和`hashCode()`是Java中不可或缺的方法,它们对于对象的比较和哈希表操作起着核心作用。理解并正确...

    Google_Hashcode_Template

    在Google_Hashcode_Template中,可能会包含OR-Tools的集成和使用示例,帮助参赛者快速理解和应用这些算法。 在Google_Hashcode_Template-main这个文件中,通常会包含项目的主文件、配置文件、CUDA源代码、OR-Tools...

    JAVA hashCode使用方法详解

    综上所述,理解和正确使用 `hashCode()` 和 `equals()` 方法对于编写高效且符合预期的Java代码至关重要,特别是在处理集合和映射数据结构时。遵循良好的重写规范可以提高容器的性能,并避免潜在的错误。

    hashcode2018:提交Hashcode 2018

    在"hashcode2018-master"这个压缩包中,很可能包含了我们团队在比赛期间编写的代码、解决方案文档、测试数据以及分析报告。通过这些文件,我们可以回顾当时的策略,学习如何运用哈希码和Python来解决实际问题。代码...

    hashcode

    `hashcode-master` 文件夹很可能包含了一个关于`hashCode()` 实现的示例项目,包括各种对象的`hashCode()` 方法的实现,以及可能的测试用例,用于演示如何正确地处理哈希码。通过学习和分析这些示例,开发者可以更好...

    2024秋招java开发、测试开发最全八股文

    理解软件开发生命周期,熟悉缺陷管理工具如JIRA,以及性能测试工具如JMeter也是必要的。 综合上述内容,对于2024年秋季招聘的Java开发者和测试开发者,应具备扎实的Java基础知识,包括面向对象设计、异常处理、集合...

    hashcode-2015:Google Hashcode 2015 - 资格赛

    《Google Hashcode 2015 - 资格赛:优化数据中心布局的CLI实用程序》 Google Hashcode 2015资格赛是一项旨在挑战参赛者解决实际问题的编程竞赛,特别是关注数据中心的布局优化。这个比赛的核心是设计一个命令行界面...

    测试listBox1.Items.Remove是用ToString还是利用gethashCode来定位元素的

    标题提到的“测试`listBox1.Items.Remove`是用`ToString`还是利用`GetHashCode`来定位元素”,实际上涉及到两种不同的方法来确定元素身份。 1. **ToString()** 方法: 在C#中,`ToString()`是一个基础方法,用于将...

    hashcode-even-more-pizza:HashCode 2021练习回合中的任务

    《哈希码与披萨:探索HashCode 2021实战任务》 在编程领域,尤其是算法竞赛中,Google的HashCode活动一直以来都是程序员们热衷挑战的盛事。"hashcode-even-more-pizza"是2021年HashCode比赛的一个实践回合,其核心...

    hashcode-2021练习

    在"hashCode-2021-practice-main"这个压缩包中,我们期望找到项目的基础结构,包括源代码文件、配置文件如package.json,可能还有测试数据、样例解决方案或者README文档,帮助理解如何构建、运行和测试代码。...

    128-hashcode-activity

    4. **测试和性能评估**:为了验证128位哈希函数的效果,项目可能包含了一组测试用例和性能基准测试,以评估不同输入下的冲突率和计算效率。 5. **源代码和文档**:项目文件 "128-hashcode-activity-main" 很可能是...

    特殊嗅探:HashCode 2021

    在Python编程中,有几个关键知识点是理解和解决这类问题的基础: 1. **数据结构**:在HashCode等编程挑战中,高效地存储和操作数据至关重要。常见的数据结构如数组、链表、栈、队列、树、图、哈希表(字典)等,会...

    String类的一些常用方法的测试

    这个测试涵盖了`String`类的一些关键方法,帮助我们更好地理解和使用这些方法来操作字符串。以下是一些`String`类中常见的方法及其用法: 1. **创建String对象** - `String str = "Hello World";`:直接初始化一个...

    hashcode2021-can-i-change-this:我们的哈希码存储库

    5. **测试哈希码**:编写单元测试来验证`hashCode()`和`equals()`的正确性,确保它们在各种场景下都能正确工作。 6. **注意并发问题**:如果对象的状态可以在多线程环境下被修改,那么必须考虑`hashCode()`的线程...

    hhtc大一期末测试题Java分析题

    为了实现这个需求,我们首先要理解Java中的Set接口和它的实现类,如HashSet、TreeSet等。Set接口规定了集合中元素的唯一性,不允许有重复的元素。判断元素是否重复通常依赖于元素的equals()和hashCode()方法。 在...

    JAVA静态测试工具介绍.pdf

    在FindBugs可检测的bug pattern中,它能找出诸如不正确的equals()和hashCode()实现、空指针异常、线程不安全的集合使用、未初始化的变量和内存泄漏等问题。这些bug模式是Java编程中常见的错误,而FindBugs的目的是...

    HashCode2021:Google的Hash代码资格赛2021年

    在`HashCode2021-main`这个文件夹中,很可能包含了比赛的题目描述、样例输入输出、样例代码和测试用例。参赛者需要深入理解题目要求,分析问题的本质,然后利用Java编写高效且正确的代码来解决这些问题。这需要对...

    contexthashcode:HashCode Generator用于源代码行的上下文

    在Java编程语言中,哈希码(HashCode)是对象的一个重要特性,它是一个整数值,通常用于快速查找和数据结构(如哈希表)的高效操作。`hashCode()`方法是每个对象都继承自`Object`类的一个方法,返回对象的哈希码。...

    HashCode_2019_Qualifier:以后再做

    在HashCode这样的竞赛中,理解和应用这些算法是关键。 3. **文件操作**:可能需要读取和写入大量数据,Python的内置`open()`函数和`pandas`库能方便地处理文件。 4. **并发编程**:Python的`threading`和`...

Global site tag (gtag.js) - Google Analytics