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

Comparable,hashcode和equals

阅读更多

说到hashcode和equals不的不想到集合类的SET,set能清楚重复的东西。

假如:

public class People {
     private String fistName;
     private String lastName;
     People(String fname,String lname){
       this.fistName = fname;
      this.lastName = lname;
   }

}

你在hashSet时想根据姓名相同的为条件来去掉重复的,重写OBJECT类的hashcode和equals一定要写对了。

public class People {
 private String fistName;
 private String lastName;
 People(String fname,String lname){
  this.fistName = fname;
  this.lastName = lname;
 }

public int hashCode(){
  return this.fistName.hashCode()*this.lastName.hashCode();
 }
 public boolean equals(Object o){  
  if( o instanceof People){
   People p = (People)o;
   if(this.fistName.equals(p.fistName)&&this.lastName.equals(p.lastName)){
    return true;
   }else{
    return false;
   }
  }else{
   return false;
  }  
 }

}

当你要对一个类做比较的时候你的实现接口compareable,实现方法public int compareTo(People o)

分享到:
评论

相关推荐

    关于重写equals,hashcode以及compareTo方法!

    重写equals()、hashcode()和compareTo()方法是非常重要的,它可以使我们的程序更加高效、可靠和灵活。在实际开发中,我们需要根据具体情况来决定是否需要重写这些方法,并遵守相关的规则,以避免出现意想不到的结果...

    JAVA集合的使用(List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类、equals、hashCode)

    要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode

    java中Comparable和Comparator的区别

    此外,Comparable接口的实现通常会影响类的 equals() 和 hashCode() 方法,因为它们之间的关系是:如果两个对象相等(根据 equals()),那么它们的 compareTo() 方法应该返回 0。而Comparator接口则不会影响对象的 ...

    JavaSE专题-Set集合.doc

    在使用Set集合时,需要掌握的一些小技巧,例如如何自动生成hashcode和equals方法,如何使用TreeSet的排序功能,如何使用LinkedHashSet的有序功能等。 总结 Set集合是JavaSE中的一种重要数据结构,包括HashSet、...

    comparing java objects_hashcode_Comparing_

    在Java编程语言中,对象的哈希码(Hash Code)和比较操作是处理集合和映射数据结构的...在处理集合和映射时,确保`equals()`和`hashCode()`的一致性以及根据需要选择适当的比较方法,可以提高代码的效率和可维护性。

    新版java教程 全套javase零基础到高级视频教程小白自学编程下载地址

    ·玩转集合框架迭代器和HashCode和Equals重新排序 实战 ·实战teratori迭代器和自定义Comparable:排序接口 ·玩转ava操作文件File类常用操作 ·案例实战IO流Input、Output Stream流 ·详细常见Object、Math、String...

    hashcode代码

    在Java编程语言中,`hashCode()` 和 `equals()` 方法是两个非常重要的概念,它们主要用于对象的比较和哈希表操作。这两个方法在处理自定义类时尤其重要,因为它们直接影响到对象的比较逻辑和存储效率。 `hashCode()...

    超详细的Java面试题总结(三)之Java集合篇常见问题.docx

    根据equals()和hashCode()的约定,如果两个对象相等,它们的hashcode也应相同,反之不成立。 最后,Comparable和Comparator接口用于排序。Comparable是对象本身实现的接口,通过覆盖compareTo()方法实现自然排序。...

    Java常见笔试、面试系列深度剖析第六讲

    当重写equals()方法时,务必同时重写hashCode()方法,以保持equals()和hashCode()的一致性。此外,要遵循以下原则: 1. 自反性:对于任何非null引用x,x.equals(x)应返回true。 2. 对称性:如果x.equals(y)返回true...

    实现元素比较1

    这是因为哈希表依赖`equals()`和`hashCode()`来确定对象是否相等,所以如果两个对象`equals()`相等,它们的`hashCode()`也应相等。 2.1. `equals()`重写的规范 - 使用Objects类的静态方法,如`Objects.equals(a, ...

    复杂对象的比较

    在Java或其他面向对象的语言中,实现复杂对象的比较是一项重要任务,它通常涉及`equals()`方法和`hashCode()`方法的重写。 **1. `equals()`方法** `equals()`方法是Object类的一个成员方法,用于比较两个对象是否...

    JAVA中实现“相等”比较的深入分析.zip

    这涉及到对象的平等性和引用的平等性,以及如何正确地实现`equals()`和`hashCode()`方法。本篇文章将深入探讨Java中"相等"比较的各个方面,旨在帮助开发者理解和掌握这一核心知识。 首先,Java中的"相等"比较分为两...

    Java集合框架完整说明便于了解集合

    HashSet基于哈希表,无序且唯一,通过hashCode和equals方法保证元素唯一性。TreeSet内部实现为红黑树,元素自动排序,而LinkedHashSet则保持插入顺序。 3. Map接口:Map用于存储键值对,HashMap、HashTable、...

    SCJP Sun® Certified Programmer for Java™ 6 Study Guide chapter 7

    ### SCJP Sun® Certified Programmer for Java™ 6 Study...此外,了解如何正确地重写`equals()`和`hashCode()`方法,以及如何利用Java集合框架提供的功能进行高效的数据管理和操作,对于提高软件质量和性能至关重要。

    Java期末复习-类集框架

    - `Comparable`接口用于实现对象的自然排序,`equals()`和`hashCode()`方法用于比较和哈希存储,是确保集合中元素唯一性的重要方法。 在使用类集框架时,泛型的使用能提高类型安全性,避免类型转换异常。同时,...

    高级开发人员面试宝典之假如你是面试官.docx

    * HashCode Equals 的原理和算法 2. JAVA 垃圾回收机制 3. 设计模式 * 迭代器模式(Iterator) * 享元模式(Flyweight) 二、多线程 1. 多线程通讯机制 * 不使用 WAIT 和 NOTIFY 的方式 * 线程锁的机制和 ...

    对Java中Set的深入研究.pdf

    - 实现`equals()`和`hashCode()`方法时,应该遵循约定:如果两个对象相等(`equals()`返回`true`),它们的`hashCode()`必须相同;但是,`hashCode()`相同并不意味着`equals()`也相同。 - 使用`Set`时,要确保对象...

    Java SE编程入门教程 java集合(共38页).pptx

    HashMap以其高效和非同步特性被广泛使用,其元素通过key的hashCode和equals保证唯一性,而TreeMap则提供了按key排序的功能,要求key实现Comparable接口。 在实际使用中,如需创建HashMap,可以通过以下方式: ```...

    JDBC_sorting_Comparing_

    标题 "JDBC_sorting_Comparing_" 暗示了这个主题是关于在Java环境中使用JDBC(Java Database Connectivity)进行数据排序,并且涉及到对象的`equals`和`hashCode`方法的重写。`equals`和`hashCode`方法是Java中的...

    第19章编程题提交1

    通常,`equals`方法会配合`hashCode`方法一起重写,以满足`equals`和`hashCode`的合同。在`TwoTuple, T2>`类中,`equals`方法应该比较两个元组的`T1`和`T2`部分是否分别相等: ```java @Override public boolean ...

Global site tag (gtag.js) - Google Analytics