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());//96354 System.out.println(str2.hashCode());//96354 System.out.println(str3.hashCode());//1179395 System.out.println(str4.hashCode());//1179395 //存入set集合 HashSet sets = new HashSet<>(); sets.add(str1); sets.add(str2); //更换了通话和重地的添加顺序后,改变了sets集合的内容展示顺序,为什么呢??哈希表数据结构导致的 sets.add(str4); sets.add(str3); System.out.println(sets); } }