前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java集合框架(hashSet自定义元素是否相同,重写hashCode和equals方法)

java集合框架(hashSet自定义元素是否相同,重写hashCode和equals方法)

作者头像
用户3030674
发布2018-09-14 14:57:02
7850
发布2018-09-14 14:57:02
举报
文章被收录于专栏:用户3030674的专栏

/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不一致,元素不可以重复 * (通过哈希值来判断是否是同一个对象) * ----HashSet:底层数据结构是哈希表, * 保证数据唯一性的方法是调用存入元素的hashCode()方法 * 和equals(Object obj)方法 * HashCode值相同,才会调用equals方法 * * */

代码语言:javascript
复制
 1 import java.util.HashSet;
 2 import java.util.Iterator;
 3 public class StudentCode {
 4     
 5     public static void main(String []args){
 6         //定义HashSet,并添加数据
 7         HashSet hs=new HashSet();
 8         hs.add(new Person("lisi",11));
 9         hs.add(new Person("zhangsan",22));
10         hs.add(new Person("lisi",22));
11         hs.add(new Person("lisi",11));
12         //遍历数据(在用迭代器输出数据时,只能用迭代器进行数据操作:增删改查,不可用对象进行操作)
13         for(Iterator it=hs.iterator();it.hasNext();){
14             Person p=(Person)it.next();
15             System.out.println("姓名:"+p.getName()+",年龄:"+p.getAge());
16         }
17     }
18 }
19 class Person{
20     private String name;
21     private int age;
22     Person(String name,int age){
23         this.name=name;
24         this.age=age;
25     }
26     public String getName(){
27         return this.name;
28     }
29     public int getAge(){
30         return this.age;
31     }
32     //重写hashCode()方法,返回一个固定的哈希值
33     public int hashCode(){
34         return 60;
35     }
36     //重写equals(Object obj)方法,定义所需要的变量比较
37     public boolean equals(Object obj){
38         //判断传入的Obj是否是由Person下转型的变量
39         if(!(obj instanceof Person))
40             return false;
41         //对传入对象上转型为Person对象
42         Person p=(Person)obj;
43         //判断两个对象是否名字和年龄相等,相等则认为是同一个对象
44         return this.name.equals(p.getName())&&this.age==p.getAge();
45     }
46 }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-01-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档