首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 集合框架精講:Set 接口與 HashSet/LinkedHashSet 實戰

     編輯:Java 相關知識

Set:不包含重複元素的集合,核心實現 HashSet(無序、高性能)與 LinkedHashSet(有序、插入序)。

代碼實戰

Set set = new HashSet<>();
set.add("Beijing");
set.add("ShangHai");
set.add("HeFei");
set.add("DaLian");
set.add("GuangZhou");
set.add("GuangZhou"); // 重複,僅保留一個
System.out.println(set); // 無序輸出,如 [ShangHai, Beijing, HeFei, DaLian, GuangZhou]

Set set2 = new LinkedHashSet<>();
set2.add("Beijing");
set2.add("ShangHai");
set2.add("HeFei");
set2.add("DaLian");
set2.add("GuangZhou");
set2.add("GuangZhou");
System.out.println(set2); // 有序輸出 [Beijing, ShangHai, HeFei, DaLian, GuangZhou]

運行結果

HashSet vs LinkedHashSet 輸出對比

核心差異表

特性HashSetLinkedHashSet
底層結構HashMapLinkedHashMap(雙向鏈表維序)
元素順序無序(由 hash 決定)插入順序
插入/查找性能O(1) 最優O(1) 略低(維護鏈表)
去重依據equals() + hashCode()同左

遍歷方式

// Iterator
Iterator it = set.iterator();
while (it.hasNext()) System.out.println(it.next());

// 增強 for
for (String s : set) System.out.println(s);

選型建議

  • 純去重、高頻查找、不關心順序 → HashSet
  • 需保持插入順序、遍歷輸出可預期 → LinkedHashSet
  • 需自然順序/定製順序 → TreeSet
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved