From 648800a6008826ef14ec350a281bc67c4069e4d5 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sun, 2 Aug 2026 11:03:05 +0800 Subject: [PATCH] =?UTF-8?q?s-day02-=E5=93=88=E5=B8=8C=E8=A1=A8=E4=BB=A5?= =?UTF-8?q?=E5=8F=8AHashSet=E4=B8=AD=E5=8E=BB=E9=87=8D=E5=A4=8D=E7=9A=84?= =?UTF-8?q?=E5=8E=9F=E7=90=86=EF=BC=88=E4=BB=A3=E7=A0=81=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/inmind/set02/HashTableDemo09.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 s-day03/src/com/inmind/set02/HashTableDemo09.java diff --git a/s-day03/src/com/inmind/set02/HashTableDemo09.java b/s-day03/src/com/inmind/set02/HashTableDemo09.java new file mode 100644 index 0000000..113dee6 --- /dev/null +++ b/s-day03/src/com/inmind/set02/HashTableDemo09.java @@ -0,0 +1,36 @@ +package com.inmind.set02; + +import java.util.HashSet; + +/* + 哈希表以及HashSet中去重复的原理 + + Set集合底层的数据结构是哈希表 + + 哈希表:在JDK8之前,就是数组+链表 + 哈希表:在JDK8之后,就是数组+链表+红黑树 + */ +public class HashTableDemo09 { + public static void main(String[] args) { + String str1 = "abc"; + String str2 = new String("abc"); + String str3 = "通话"; + String str4 = "重地"; + //查看他们各自的哈希值 + System.out.println(str1.hashCode()); + System.out.println(str2.hashCode()); + System.out.println(str3.hashCode()); + System.out.println(str4.hashCode()); + + //存入set集合 + HashSet sets = new HashSet<>(); + sets.add(str1); + sets.add(str2); + //更换了通话和重地的添加顺序后,改变了sets集合的内容展示顺序,为什么呢??哈希表数据结构导致的 + sets.add(str4); + sets.add(str3); + System.out.println(sets); + + + } +}