`
zhengjiong
  • 浏览: 71038 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

重写equals和hashCode方法,让入HashSet中的内容不重复

    博客分类:
  • Java
阅读更多

 

package com.zj.hashset.test;

import java.util.HashSet;

/**
 * 功能:重写equals和hashCode方法,让相同姓名的用户不能重复加入HashSet
 * @author zhengjiong
 * time:2011-9-14 下午11:52:44
 */
public class HashSet_Test {
	
	public static void main(String[] args) {
		
		People p1 = new People("zhangsan");
		People p2 = new People("zhangsan");
		
		System.out.println(p1.hashCode());
		System.out.println(p2.hashCode());
		
		HashSet set = new HashSet();
		set.add(p1);//HashSet会自动调用hashcode方法,List不会
		set.add(p2);
		
		System.out.println(set);
		
	}
}
class People {
	String name;
	
	public People(String name){
		this.name = name;
	}
	
	@Override
	public int hashCode() {
		return this.name.hashCode();
	}
	
	@Override
	public boolean equals(Object obj) {
		if(this == obj){
			return true;
		}
		if(obj != null)
		{
			if(obj instanceof People){
				return this.name.equals(((People)obj).name) ? true : false;
			}
		}
		return false;
	}
}
分享到:
评论

相关推荐

    重写equals和hashcode方法_equals_重写equals和hashcode方法_

    在Java编程语言中,`equals()` 和 `hashCode()` 方法是Object类中的两个核心方法,所有类都默认继承自Object类。这两个方法在处理对象比较和集合操作时起着至关重要的作用。当我们创建自定义类并需要对对象进行精确...

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

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

    equals与hashCode在实际开发中的重写写法

    在Java编程语言中,`equals()` 和 `hashCode()` 方法是两个非常重要的成员,尤其是在处理对象比较和集合操作时。这两个方法通常与`Object`类中的默认实现相关联,但为了在实际开发中实现正确的对象比较和哈希表操作...

    Java_重写equals()和hashCode()

    在Java编程语言中,`equals()` 和 `hashCode()` 方法是对象的基本组成部分,它们在很多场景下都发挥着至关重要的作用。这两个方法与对象的相等性比较和哈希表(如HashMap、HashSet)的运作紧密相关。这篇博客将深入...

    重写hashCode()和equals()方法详细介绍

    在Java编程中,`equals()` 和 `hashCode()` 方法是Object类中的两个重要方法,它们在处理对象相等性以及在哈希表(如HashSet、HashMap)中起到关键作用。当自定义类时,有时需要根据业务逻辑重写这两个方法以满足...

    学习Object类——为什么要重写equeals和hashcode方法

    在 Java 编程语言中,Object 类是所有类的父类,但是在实际开发中,我们往往需要重写 Object 中的 equals 和 hashCode 方法,以便正确地比较对象的逻辑内容,而不是内存地址。下面我们将详细地解释为什么需要重写这...

    Java中的equals和hashCode方法详解1

    在Java编程语言中,`equals()`和`hashCode()`方法是对象的基本组成部分,它们主要用于对象的比较和存储。这两个方法在`java.lang.Object`类中定义,因此所有的Java类都默认继承了这两个方法。然而,根据具体的应用...

    Java中equals,hashcode和==的区别

    "Java中equals、hashcode和==的区别" Java 中 equals、hashcode 和==的区别是 Java 编程语言中一个经常遇到的问题。这三个概念都是用来比较对象的,但是它们之间存在着本质的区别。 首先,==号是Java中的一个...

    equals,hashcode,toString

    在Java编程语言中,`equals()`, `hashCode()` 和 `toString()` 是三个非常重要的方法,它们主要用于对象的比较、哈希存储以及打印对象信息。这三个方法是Java对象的基础特性,对于理解和开发高质量的Java程序至关...

    Java容器集合(equals 和 hashCode+基础数据结构+ArrayList+Vector和LinkedList)

    重写equals方法需要遵守通用约定,hashCode方法的实现需要保证equals相同的两个对象的hashCode结果一致。ArrayList、Vector和LinkedList是Java中三种常见的容器集合,每种集合都有其特点和应用场景。

    为什么在重写 equals方法的同时必须重写 hashcode方法

    在 Java 中,`equals` 和 `hashCode` 方法是 Object 类中的两个重要方法,它们用于比较对象的相等性。默认情况下,`equals` 方法比较的是两个对象的引用,即是否指向内存中的同一个位置,而 `hashCode` 方法则返回...

    java中为何重写equals时必须重写hashCode方法详解

    例如,当你尝试将一个自定义对象放入 `HashSet` 或 `HashMap` 时,由于 `equals()` 和 `hashCode()` 的不一致,可能导致对象无法正常添加,或者在集合中出现重复项,这将违反这些集合类的预期行为。 举例说明,假设...

    C# Equals 和 GetHashCode 方法重写

    ### C# Equals 和 GetHashCode 方法重写 在C#编程中,`Equals` 和 `GetHashCode` 方法是非常重要的成员方法,它们对于确保对象的正确比较以及高效地存储和检索对象至关重要。这两个方法通常需要在自定义类中进行...

    why在重写equals时还必须重写hashcode方法分享

    在Java编程语言中,`equals()` 和 `hashCode()` 方法对于对象的比较和处理至关重要,特别是在集合框架中。这两个方法有着紧密的联系,因为它们在决定对象是否相等以及如何存储和检索对象时起到关键作用。 首先,让...

    如何在IDEA中对 hashCode()和 equals() 利用快捷键快速进行方法重写

    在Java编程中,`equals()`和`hashCode()`方法是Object类中的两个重要方法。当我们创建自定义类并将其对象放入集合(如HashSet)时,往往需要重写这两个方法以确保集合能够正确地处理这些对象。IntelliJ IDEA,作为一...

    equals 和 hashCode两者效果分析详解.docx

    在Java编程语言中,`equals()`和`hashCode()`方法是两个非常重要的概念,尤其是在处理对象比较和容器(如HashMap和HashSet)操作时。这两个方法在Java的类库中有着核心地位,尤其是对于类实例的比较和存储。接下来,...

    equals方法的重写.docx

    3. **兼容数据结构**:许多Java集合框架中的数据结构(如HashSet、HashMap)依赖于对象的`equals`和`hashCode`方法来判断元素的唯一性。如果未正确重写`equals`方法,这些数据结构可能会出现异常行为。 #### 三、...

    Java基础加强_ArrayList_HashSet的比较及Hashcode分析

    它不允许有重复元素,通过重写对象的equals()和hashCode()方法来确定元素是否相等和在哈希表中的位置。HashSet在插入新元素时会计算其Hashcode,根据Hashcode将元素放入哈希表的特定位置,以达到快速查找的目的。当...

    java中重写equals和重写hashCode()

    在Java编程语言中,`equals()` 和 `hashCode()` 是两个非常重要的方法,它们主要用于比较对象的平等性以及在散列数据结构(如 `HashMap`、`HashSet` 等)中的对象定位。当我们创建自定义类时,有时需要根据业务需求...

    Java equals 方法与hashcode 方法的深入解析.rar

    在Java编程语言中,`equals()`方法和`hashCode()`方法是两个非常重要的概念,它们主要用于对象的比较和哈希表的高效运作。本解析将深入探讨这两个方法的用途、实现原理以及它们之间的关联。 首先,`equals()`方法是...

Global site tag (gtag.js) - Google Analytics