Files
javaSE260715-new/s-day03/src/com/inmind/set02/HashTableDemo09.java
T

37 lines
1.1 KiB
Java

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