iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
Software Development

Java基礎筆記系列 第 21

Java的三大集合:ArrayList、HashSet、Map

  • 分享至 

  • xImage
  •  

ArrayList

ArrayList是Java集合的一部分,為一個類別,實作List介面。

  • 使用動態陣列來儲存元素,可以動態調整大小。
  • 有特定的順序,每個元素有其索引值。
  • 允許重複。
  • 隨機存取效率高,但在列表中間插入或刪除元素的效率較低。
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
furits.add("Banana");
System.out.println(fruits.get(1)); 
//印出Banana

HashSet

HashSet是Java集合的一部分,為一個類別,實作Set子介面。

  • 無特定的順序,無索引值。
  • 加入時不允許重複,為唯一性。
  • 內部使用哈希表儲存元素。
  • 插入和查詢的效率較高
    ※哈希表示透過哈希函數將key轉換成索引,再透過此索引將相應的值存於底層陣列,可快速存取
HashSet(Integer> numbers = new HashSet<>();
numbers.add(5);
numbers.add(3);
numbers.add(3); //加入失敗,因不得重複加入3
System.out.println(number.size()); 
//印出長度為2

Map

Map 是一個介面,它表示一種 Key-Value 對映關係。

  • 取得的KEY若不存在,則會印出null空值。
  • Key必須是唯一不能重複,若加入重複的KEY,並帶有新的Value時,會替換掉舊的Value值。
  • 常見的實作有HashMap、TreeMap。
    • HashMap是以哈希表為結構,不保證元素的順序,適用於需快速查詢、插入,且不需要排序的情境。
    • TreeMap是以二叉搜尋為結構,有一定的排序規則,適用於須有序的Key及排序功能的情境。
Map<String, Integer> students = new HaspMap<>();
students.put("Mary",22);
students.put("Alex",18);
students.put("Eudora",30);
students.put("Mary",32); //與第一個Mary同Key,因此會將32取代22
System.out.println(students.get("Alex");
//印出18
System.out.println(students.get("Claire");
//會印出null

上一篇
Java的陣列與集合
下一篇
Java的例外機制Exception
系列文
Java基礎筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言