HashTest以及对象唯一性(二)

package cn.cp;
//在HashSetTest1的基础上重写hashCode()和equals()方法,来确保对象唯一性
import java.util.HashSet;
import java.util.Iterator;
class Boy2 {
	private int age;
	private String name;

	public Boy2(int age, String name) {
		super();
		this.age = age;
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public String getName() {
		return name;
	}

	@Override
	public int hashCode() {//返回新的hash值
		return name.hashCode()+age;
	}

	@Override
	public boolean equals(Object obj) {
		Boy2 b=(Boy2) obj;
		boolean result=this.age==b.age&&this.name.equals(b.name);
		return result;
	}

	@Override
	public String toString() {
		return "boy3 [age=" + age + ", name=" + name + "]";
	}

}

public class HashSetTest2 {
	public static void main(String[] args) {
      Boy2 boy1=new Boy2(12, "liming");
      Boy2 boy2=new Boy2(13, "liming");
      Boy2 boy3=new Boy2(12, "liming");
      HashSet hashSet=new HashSet();
      hashSet.add(boy1);
      hashSet.add(boy2);
      hashSet.add(boy3);
      Iterator iterator=hashSet.iterator();
      while(iterator.hasNext()){
      	System.out.println(iterator.next());
      }
	}
}
时间: 2024-10-02 06:53:35

HashTest以及对象唯一性(二)的相关文章

HashTest以及对象唯一性(三)

package cn.cp; //当然可以自动生成代码equals()和hashCode()方法,来确保对象的唯一性. //这样的话存入HashTest的对象就保证了唯一性 import java.util.HashSet; import java.util.Iterator; class Boy3 { private int age; private String name; public Boy3(int age, String name) { super(); this.age = age

HashTest以及对象唯一性(一)

package cn.cp; //尽管我们在Person类里写了equals方法,但是还是存入了两个name=liming,age=12的对象 //这是为什么呢???????? //因为HashSet在往里面存对象的时候,它存的是Hash值. //虽然建立的两个name=liming,age=12但是他们的hash值不一样,所以当做了不同的对象. //注意: //(1)Java里一个hash值下可能有多个对象. //(2)在HashSet中在比较是否是同一个对象时,先比较的hash值,若hash

php 遍历对象属性二种方法

php教程 遍历对象属性二种方法 /* 本文章下面我们要为你提供二种关于遍历对象属性方法,并且举例说明遍历对象属性在php中的应用. */ class foo {     private $a;     public $b = 1;     public $c;     private $d;     static $e;        public function test() {         var_dump(get_object_vars($this));     } } $test

javascript的日期对象、数组对象、二维数组使用说明_基础知识

一.日期对象 格式 :   日期对象名称=new Date([日期参数]) 日期参数: 1.省略(最常用)                                      2.英文-参数格式:月 日,公元年[时:分秒]                                 如:today=new Date("October 1,2008 12:00:00");                           3.数值格式: 公元年,月,日,[时,分,秒]    

Scala入门到精通——第七节:类和对象(二)

本节主要内容 单例对象 伴生对象与伴生类 apply方法 应用程序对象 抽象类 单例对象 在某些应用场景下,我们可能不需要创建对象,而是想直接调用方法,但是Scala语言并不支持静态成员,Scala通过单例对象来解决该问题.单例对象的创建方式如下: object Student { private var studentNo:Int=0; def uniqueStudentNo()={ studentNo+=1 studentNo } def main(args: Array[String]):

C02-程序设计基础提高班(C++)第10周上机任务-类和对象之二

第10周:阅读教材第9章(p263-313),主要内容是构造和析构函数.对象数组.对象指针.共用数据的保护等,完成第10周上机任务: (回到C02-程序设计基础提高班(C++)学习安排) 实践任务: [任务1]设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化 #include<iostream> using namespace std; class Triangle {public: float perimeter(void);//计算三角形的周长 float area(void)

物联网快速改变生活模式 2020年联网对象超二百亿个

几年前,说起物联网,你可能还觉得遥不可及,只存在于想象,而近几年来,随着技术的发展和进步,万物相连似乎变成可能,一部手机成为人们出行必备之一,一卡通,手机通都大大便利了人们的生活.物联网把实物联入网络,最终实现物品与物品之间.人与物品之间全面的信息交互. 近几年物联网技术已经应用于各行业的生产流程以及制造业的产业结构调整中,促进各个工业企业在节能减排.提高生产效率.生产效益提升等方面的改善.万物相连已不是梦想,随着科技脚步日新月异,物联网正以倍数成长速度进行中,从个人移动装置到智能家居,甚至企业

与DotNet数据对象结合的自定义数据对象设计(二) 数据集合与DataTable

在上篇Blog中介绍了如何定义一个与DataRow相结合的数据类,那么本篇将介绍如何定义一个与 DataTable对应的数据集合. 在DotNet中提供了一个CollectionBase作为我们定义强类型的数据集合的抽象类,在DotNet1.1中要定 义一个强类型的数据集合就必须为每一种数据类定义一个对应的数据集合,在2.0中增加了泛型的功能后 ,这个问题得到了解决.又由于在目前的Ibatisnet版本中还不支持泛型的功能,所以数据集合可以选择 从ArrayList或CollectionBase

WCF技术剖析之二十七: 如何将一个服务发布成WSDL

[基于WS-MEX的实现](提供模拟程序) 通过<如何将一个服务发布成WSDL[编程篇]>的介绍我们知道了如何可以通过编程或者配置的方式将ServiceMetadataBehavior这样一个服务形式应用到相应的服务上面,从而实现基于HTTP-GET或者WS-MEX的元数据发布机制.那么在WCF内部具体的实现原理又是怎样的呢?相信很多人对此都心存好奇,本篇文章的内容将围绕着这个主题展开. 一. 从WCF分发体系谈起 如果读者想对WCF内部的元数据发布机制的实现原理有一个全面而深入的了解,必须对