进阶day03-哈希表以及HashSet中去重复的原理

This commit is contained in:
2026-02-01 11:28:41 +08:00
parent 87b87d7b5d
commit 2aa143cca1

View File

@@ -0,0 +1,39 @@
package com.inmind.set02;
import java.util.HashSet;
/*
哈希表以及HashSet中去重复的原理
Set集合底层的数据结构是哈希表
哈希表:在JDK8之前,就是数组+链表
哈希表:在JDK8之后,就是数组+链表+红黑树
总结哈希表通过对象的hashCode和equals方法来实现去重功能的它能够在实现去重的基础上还能保证高效查询操作
如何保证高效假设有1万条数据遍历是否包含某个数据由hashCode值就排除了8000条数据只要查询2000条
*/
public class HashDemo09 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = new String("abc");
String s3 = "通话";
String s4 = "重地";
//s1与s2地址不同但是内容相同哈希值也相同由于String重写了hashCode方法哈希值跟内容有关
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
//s3与s4地址不同内容也不相同哈希值相同由于String重写了hashCode方法哈希值跟内容有关
System.out.println(s3.hashCode());
System.out.println(s4.hashCode());
HashSet<String> sets = new HashSet<>();
sets.add(s1);
sets.add(s2);
sets.add(s4);
sets.add(s3);
System.out.println(sets);
}
}