ArrayList,HashSet判断对象是否重复的原理
来源:互联网 发布:呼死你软件淘宝有卖吗 编辑:程序博客网 时间:2024/06/01 08:38
HashSet集合由于是无序的,其判断唯一的依据是元素类型的hashCode与equals方法的返回结果。规则如下:
先判断新元素与集合内已经有的旧元素的HashCode值
如果不同,说明是不同元素,添加到集合。
如果相同,再判断equals比较结果。返回true则相同元素;返回false则不同元素,添加到集合。
所以,使用HashSet存储自定义类型,如果没有重写该类的hashCode与equals方法,则判断重复时,使用的是地址值,如果想通过内容比较元素是否相同,需要重写该元素类的hashcode与equals方法。
自定义类的equals方法仿照String重写hashcode() 代码如下
String类型的调用自身的hashCode方法+int类型的*较大的数即可
public int hashCode() { int h = 0; Iterator<E> i = iterator(); while (i.hasNext()) { E obj = i.next(); if (obj != null) h += obj.hashCode(); } return h; }
eclipse重写 equals() 和Hashcode()的快捷键:Alt+Shift+S
阅读全文
0 0
- ArrayList,HashSet判断对象是否重复的原理
- 【Java学习笔记】Hashset判断自定义对象是否重复
- 向HashSet插入自定义对象判断是否重复
- HashSet中是如何判断元素是否重复的
- HashSet中是如何判断元素是否重复的
- HashSet中是如何判断元素是否重复的
- HashSet中是如何判断元素是否重复的
- HashSet小练习--判断人是否重复
- java怎么判断两个Set 里的对象的值是否相同【两个set中的值是否相等】、java treeset和hashset如何判断元素是否相同【即对象是否完全相同;利用一个set去除重复元素】
- hashSet判断是否是同一对象
- JAVA基础之——HashSet中是如何判断元素是否重复的
- JAVA HashSet 的 判断重复 问题
- hashSet保证不重复的原理
- HashSet判断重复
- Arraylist与Hashset的判断元素相同的依据
- ArrayList,LinkedList,HashSet、HashMap的优缺点 原理 如何选择使用
- 对象容器 ArrayList HashSet HashMap
- ArrayList,HashSet的比较
- 性能优化--找到SQL SERVER中的书签查找
- 高精度
- 写测试
- 浅谈CNN与RNN
- C++中 const int* ,int * cnost,以及指针 (pointer) 的理解
- ArrayList,HashSet判断对象是否重复的原理
- 高德地图相关
- Java8-Lambda-No.05
- 购置一款适合初学者进行深度学习的电脑
- PostgreSQL之Sequence序列
- RecycleView的详细介绍
- java开发hadoop报错误 java.net.UnknownHostException
- Spring Cloud Eureka
- MyBatis-常用类型