HashSet的add和remove作业

导读:本篇文章讲解 HashSet的add和remove作业,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

本文主要讲述HashSet的一道作业题,给出示例代码,讲出输出的内容。

一. 示例代码如下:

 1 public class HomeWork06 {
 2     public static void main(String[] args) {
 3         HashSet hashSet = new HashSet();
 4         Person p1 = new Person(1001,"AA");
 5         Person p2 = new Person(1002, "BB");
 6         hashSet.add(p1);
 7         hashSet.add(p2);
 8         p1.setName("CC");
 9         hashSet.remove(p1);
10         System.out.println(hashSet);
11         hashSet.add(new Person(1001,"CC"));
12         System.out.println(hashSet);
13         hashSet.add(new Person(1001,"AA"));
14         System.out.println(hashSet);
15 
16     }
17 }
18 
19 class Person {
20     private int id;
21     private String name;
22 
23     public Person(int id, String name) {
24         this.id = id;
25         this.name = name;
26     }
27 
28     public String getName() {
29         return name;
30     }
31 
32     public void setName(String name) {
33         this.name = name;
34     }
35 
36     @Override
37     public boolean equals(Object o) {
38         if (this == o) return true;
39         if (o == null || getClass() != o.getClass()) return false;
40         Person person = (Person) o;
41         return id == person.id && Objects.equals(name, person.name);
42     }
43 
44     @Override
45     public int hashCode() {
46         return Objects.hash(id, name);
47     }
48 
49     @Override
50     public String toString() {
51         return "Person{" +
52                 "id=" + id +
53                 ", name='" + name + '\'' +
54                 '}';
55     }
56 }

问输出什么?

二. 代码逐句解析

hashSet.add(p1);
hashSet.add(p2);

hashSet 添加了p1,p2 Person类对象。

p1.setName("CC");
hashSet.remove(p1);

将p1的name由AA ->CC,之后调用remove(p1),p1的hash值已经不一样了,因此在修改了p1的name之后,对应的table的索引已经不一样了,所以无法将p1删除。table的元素有:p1和p2

hashSet.add(new Person(1001,"CC"));

在hashSet中添加new Person(1001,”CC”),由1001和CC得到的hash值,与p1的不一样【p1的hash值是由1001,AA得到的】,因此添加成功。此时table中的元素有:p1和p2,new Person(1001,”CC”)。

hashSet.add(new Person(1001,"AA"));

在hashSet中添加new Person(1001,”AA”),由1001和AA得到的hash值,与p1是相同的,即table的索引相同,但是此时p1是1001,”CC”,新添加的对象是1001,”AA”,二者不相同,因此,new Person(1001,”AA”)会添加到p1的后面,形成一条单链表。

在HashSet的table表中共有4个对象。

三. 运行结果

vip

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/98959.html

(0)
小半的头像小半
0 0

相关推荐

  • java的文件操作【流】 Java

    java的文件操作【流】

    0 088
    小半的头像 小半
    2023年2月12日
  • 搭建Nginx,解释nginx.conf配置文件功能,解决跨域问题 Java

    搭建Nginx,解释nginx.conf配置文件功能,解决跨域问题

    0 0158
    小半的头像 小半
    2022年5月25日
  • Java面向对象(1) Java

    Java面向对象(1)

    0 082
    Java光头强的头像 Java光头强
    2023年2月19日
  • 第六章 Spring Cloud Config配置管理 Java

    第六章 Spring Cloud Config配置管理

    0 0107
    小半的头像 小半
    2022年5月23日
  • CAS(Compare and Swap)无锁算法之volatile不能保证原子性而Atomic可以 Java

    CAS(Compare and Swap)无锁算法之volatile不能保证原子性而Atomic可以

    0 0110
    小半的头像 小半
    2022年5月24日
  • vue后台管理之动态加载路由 Java

    vue后台管理之动态加载路由

    0 0153
    小半的头像 小半
    2022年5月24日
  • java中的接口 Java

    java中的接口

    0 0111
    小半的头像 小半
    2023年2月12日
  • ThreadPoolExecutor线程池 Java

    ThreadPoolExecutor线程池

    0 0117
    小半的头像 小半
    2022年5月22日
  • 推荐100个高质量开发者博客 Java

    推荐100个高质量开发者博客

    0 0107
    小半的头像 小半
    2022年5月24日
  • Git遇到的问题 Java

    Git遇到的问题

    0 086
    小半的头像 小半
    2022年5月25日
  • JDBC入门 Java

    JDBC入门

    0 0128
    小半的头像 小半
    2023年2月17日
  • Spring容器启动(上) Java

    Spring容器启动(上)

    0 092
    Java光头强的头像 Java光头强
    2023年2月18日

站长精选

  • 京东开源,牛逼哄哄的 JD-hotkey 到底有多强悍?

    京东开源,牛逼哄哄的 JD-hotkey 到底有多强悍?

    2024年2月16日

  • SpringBoot配置文件的加载顺序

    SpringBoot配置文件的加载顺序

    2022年12月20日

  • SpringSecurity常见面试题汇总(超详细回答)

    SpringSecurity常见面试题汇总(超详细回答)

    2023年8月31日

  • 你是外包,麻烦不要偷吃零食。。注意素质!

    你是外包,麻烦不要偷吃零食。。注意素质!

    2024年2月25日

  • 面试官问:select......for update会锁表还是锁行?

    面试官问:select……for update会锁表还是锁行?

    2023年8月17日

  • 10分钟带你彻底搞懂 RPC 架构

    10分钟带你彻底搞懂 RPC 架构

    2022年11月15日

  • Docker 入门终极指南,详细版!别再说不会用 Docker 了!

    Docker 入门终极指南,详细版!别再说不会用 Docker 了!

    2023年7月20日

  • 去除烦人的 NullPointerException 空指针异常,这样做才够优雅!

    去除烦人的 NullPointerException 空指针异常,这样做才够优雅!

    2023年7月26日

  • Java服务优雅上下线

    Java服务优雅上下线

    2024年3月23日

  • Spring 微服务项目引入 CQRS 模型,优势在我!

    Spring 微服务项目引入 CQRS 模型,优势在我!

    2023年10月20日

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!

聚圣源瑜珈馆起名字大全关于蔬菜公司的起名产品起名怎么起鼠宝宝起名宜用字大全李字龙凤胎起名属相婚配表心动起名皇冠后备网址公司起个名字许冠英电影立邦icolor设计湖北卫视在线直播观看工作鉴定空即是色2西游记好词好句摘抄中介公司大气起名院校起名字对宝宝起名姓罗爱我多深qvod中央海岸水手想给孙子起个小名给物业公司起个什么名字好属狗的公司起名吉祥李清照诗词起名叶玄叶灵小说山西面馆起名杀医事件文本框只读观察植物的作文哪些字五行属土起名字淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化