首页 > 编程语言 >Java中Set里remove详解

Java中Set里remove详解

时间:2023-02-01 09:45:53浏览次数:43  
标签:AA set Java CC p1 remove Set 1001

例如

 1 HashSet set = new HashSet();
 2 Person p1 = new Person(1001,"AA");
 3 Person p2 = new Person(1002,"BB");
 4 set.add(p1);
 5 set.add(p2);
 6 p1.name = "CC";
 7 set.remove(p1);
 8 System.out.println(set);
 9 set.add(new Person(1001,"CC"));
10 System.out.println(set);
11 set.add(new Person(1001,"AA"));
12 System.out.println(set)

p1.name="CC";//把原本的AA改为CC  此时p1   为 1001   CC

set.remove(p1); //  此时用索引去查找 p1  为1001  CC,然后在set里去remove  p1时,先计算p1  1001 CC 的hash值,然后去remove   ,而之前p1  1001  AA 的hash值是根据  1001  AA  计算的,修改为 CC  之后的hash值 很大概率和AA不一致,然后去remove的时候,可能就没删除掉 p1 1001 CC 

 

标签:AA,set,Java,CC,p1,remove,Set,1001
From: https://www.cnblogs.com/rpbszy/p/17081519.html

相关文章

  • 【Javaweb】什么是Listener监听器?
    1、Listener监听器它是Javaweb的三大组件之一。Javaweb的三大组件分别是:Servelt程序,Filter过滤器,Listener监听器。2、Listener它是JavaEE的规范,就是接口3、监听器的作用......
  • 【Javaweb】jsp | 简单学习
    什么是jsp,它有什么用?jsp的全称是javaserverpages。Java的服务器界面。jsp的主要作用是代替Servlet程序回传html页面的数据因为Servlet程序回传html页面数据是一件非常......
  • 【Javaweb】JavaEE项目的三层架构 | 快速搭建
    逻辑类图  分层的目的是为了解耦。解耦就是为了降低代码的耦合度。方便项目后期的维护和升级。不同的层有不同的包web层com.stguigu.web/servlet/con......
  • 极客时间 Java并发编程实战 笔记
    思考、再思考、总结、再总结01可见性、原子性和有序性举几个例子先。缓存可能导致可见性问题,因为多核CPU上的多个核可能都持有同一数据的不同缓存。两个线程并行地对......
  • linux中memset作用,为什么要用memset
    光脚赤膊于2010-03-2814:36:08发表:“用处是大面积赋值,速度快!”所谓“初始化”,当然是指将你定义的变量或申请的空间赋予你所期望的值,例如语句inti=0;就表明定义了一......
  • JavaScript学习笔记—DOM:事件
    事件(event)事件就是用户和页面之间发生的交互行为比如:点击按钮,鼠标移动,双击按钮,敲击键盘,松开按键...可以通过为事件绑定响应函数(回调函数),来完成和用户之间的交互绑定响......
  • 学习java第四天
    IDEA安装安装完创建src创建newjava.classIDE快捷键:1.psvm=publicstaticvoidmain(String[]args){ }2.sout=System.out.println();IDE:把ide精益求精JAVA语......
  • Java斐波那契数列实例
      在斐波那契数列中,下一个数字是前两个数字的总和,例如:0,1,1,2,3,5,8,13,21,34,55等。斐波那契数列的前两个数字是0和1,第三个数字是前两个数字的和,也就是0+1=1,所以这......
  • Java素数实例
    质数(primenumber)又称素数,有无限个。质数定义是:在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。例如,2,3,5,7,11,13,17….是素数。注意:0和1不是素数。2是......
  • JAVA--你好世界
    publicclassHello{publicstaticvoidmain(String[]args){System.out.print("你好,世界!");}}D:\code>javacHello.java-->生成.class文件D:\co......