HashSet小练习--判断人是否重复

Arraylist判断重复用equals方法,HashSet用HashCode和equals方法。

如果姓名和年龄相同则重复,不打印

import java.util.*;
class h
{
	public static void main(String[] args)
	{
		HashSet sh = new HashSet();
		sh.add(new person("a1",11));
		sh.add(new person("a2",12));
		sh.add(new person("a2",12));
		sh.add(new person("a3",13));

		for(Iterator it = sh.iterator();it.hasNext();)//循环读元素
		{
			person p  = (person)it.next();
			sop(p.getName()+","+p.getAge());
		}
	}
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}
class person
{
	private String name;
	private int age;
	person(String name,int age)
	{
		this.name = name;
		this.age = age;
	}
	public int hashCode()//增加HASH值
	{
		return name.hashCode()+age;
	}
	public boolean equals(Object obj)//判断是否重复,equals方法
	{
		if(!(obj instanceof person))
			return false;
		person p = (person)obj;
		return this.name.equals(p.name)&&this.age==p.age;
	}
	public String getName()
	{
		return name;
	}
	public int getAge()
	{
		return age;
	}
}
时间: 2024-09-17 04:04:33

HashSet小练习--判断人是否重复的相关文章

asp-ASP中一维数组如何判断是否存在重复项呢

问题描述 ASP中一维数组如何判断是否存在重复项呢 请问一下,动态一维数组中如何判断数组中是否存在相同的值呢? 比如说动态数组A() A(1)="A" A(2)="B" A(3)="A" 动态数组B() B(1)=1 B(2)=2 B(3)=3 最后输出的是 A 4 B 2 就是A(1)+A(3) 相同的数组B()相加输出,不相同的直接输出B()对应的值 解决方案 a=split("A,B,A",",")

vc++-VC在数据库新增一个记录的时候如何判断数据不重复

问题描述 VC在数据库新增一个记录的时候如何判断数据不重复 判断一个字段,比如ID之类的,数据库中不重复则添加新记录,通过VC++写数据的,ODBC接口 解决方案 你可以把不重复的那列设置为unique 索引.主要重复插入第二条会失败.你try catch捕获一下错误就可以了. 解决方案二: SQL删除数据库中重复的数据记录C# 剔除数据库查询到的重复数据,只保留一个(distinct) 解决方案三: 根据id查询一下有没有数据来判断数据是否重复 解决方案四: INSERT INTO 表名 se

java源码-java根据输入的数组内容判断是否有重复

问题描述 java根据输入的数组内容判断是否有重复 那我怎么判断输入内容有没有重复的,横纵两行都判断 例如:输入 3 321 122 123 解决方案 不知道你要怎么判断,比如你说的 321 122 123 这个算有重复么? 解决方案二: /* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the clas

php 判断是否有重复数组

php本身有提供一些函数,有一个出去重复的函数就是array_unique,这个函数会去除相同的值,这样可以给我们开发者带来方便,去除重复的值后在获取数组的长度,和未去除重复的长度来比较,下面代码不只是否可以用在二维数组上,我用的是一维数组   php 判断是否有重复数组代码   if(count($pf_shuliang) != count(array_unique($pf_shuliang))) showErr("批发数量不可重复",$ajax);   二维数组根据键值排序 pub

C/C++字节序(大端/小端)判断

C/C++大端小端判断 说的是变量的高字节.低字节在内存地址中的排放顺序. 变量的高字节放到内存的低地址中(变量的低字节放到内存的高地址中)==>大端 变量的高字节放到内存的高地址中(变量的低字节放到内存的低地址中)==>小端 例如,对于int类型变量x=0x30313233,在x86下,考虑到在内存中是按照字节为单位进行数据排布,那么会把0x30,0x31,0x32,0x33这4个值按照某种顺序(大端或者小端)进行存储:从0x30到0x33依次为变量的高字节到低字节,如果是大端字节序存储,则

VS开发中的代码编写小技巧——避免重复代码编写的几种方法

原文:VS开发中的代码编写小技巧--避免重复代码编写的几种方法 上一篇文章中程序员的幸福生活--有你的日子,每天都是情人节,收到了大家的很多好评.鼓励和祝福,非常感动,真诚的谢谢大家.也希望每个朋友都能保持一个积极向上的心态,去迎接丰富多彩的人生. 在开发过程中,我们经常会遇到大量重复或者类似的代码需要编写,当然我们可以通过各种模式来避免这种情况出现,但肯定有些时候我们是无法避免的,那么遇到这种情况,我们该如何快速完成这些重复或类似的代码的编写呢.下面来说一下我的方法,当然,如果大家有更好的方法

维棉投资人徐小平:人在就能继续创业

真格基金创始人徐小平( 腾讯科技配图)腾讯科技讯(朱旭冬)8月23日消息,今天在接受腾讯科技采访时,真格基金创始人徐小平表示,自己是一个出名的"被动"投资者,在投资维棉的时候对这家公司非常认同, 但是投完之后,自己并不会去过多关注.徐小平表示,天使投资最缺的是失败率,如果失败率低于75%就不合格."但是失败有不同的方法,有光荣的失败,我 经过努力了,抱头痛哭,投资人也认了,时运不济:还有一种是员工骂你.客户骂你,投资人也骂你."虽然在微博上点出了维棉目前遭到的困境,

徐小平:微博毁了我 天使最深的哲学是人而非模式

徐小平:在线教育两年后有可能像电商一样普及徐小平在创投领域的地位毋庸置疑.他曾是新东方留学.签证.出国咨询事业的创始人,在 2006 年新东方上市后他离开新东方从事天使投资,并在此后创办真格基金,做起了资助年轻人创业的天使投资人,而且业绩极佳.投资名单有已在几年之间成长为知名公司的世纪佳缘.兰亭集势.聚美优品.2011 年末,真格基金与红杉资本中国基金成为战略合作伙伴,这是真格募集的第二期基金,也象征着真格基金进入更加正规的公司化运营.真格基金第二期以资金需求在 200 万人民币左右的早期公司为

javascript判断数组内是否重复的方法_javascript技巧

本文实例讲述了javascript判断数组内是否重复的方法.分享给大家供大家参考.具体如下: Array.prototype.del = function(){ var a = {}, c = [], l = this.length; for (var i = 0; i < l; i++) { var b = this[i]; var d = (typeof b) + b; if (a[d] === undefined) { c.push(b); a[d] = 1; } } return c;