Set和Map是Java中兩個重要的集合類型,它們都可以用來存儲一組對象。但是,它們在實現上有著很大的不同。
Set
Set是一個不允許重復元素的集合。它的實現是通過哈希表的方式,將元素存儲在哈希桶中。Set中的元素都是無序的,因為它們是根據哈希碼存儲的。例如,假設我們有一個Set
Setset = new HashSet<>(); set.add("apple"); set.add("orange"); set.add("banana"); set.add("apple"); System.out.println(set); // 輸出:[orange, apple, banana]
Map
Map是一個鍵值對的集合。它的實現方式是通過哈希表,每個鍵值對(Entry)作為一個元素,存儲在哈希桶中。Map中的鍵是唯一的,因此不允許重復的鍵,但是值是可以重復的。例如,假設我們有一個Map
Mapmap = new HashMap<>(); map.put("apple", 3); map.put("orange", 5); map.put("apple", 2); System.out.println(map); // 輸出:{orange=5, apple=2}
總結
Set和Map都是存儲一組對象的集合,但是它們的實現方式不同。Set是不允許重復元素的集合,而Map是以鍵值對為元素的集合。在存儲元素時,Set是根據哈希碼存儲,而Map是以鍵值對為元素存儲。因此,在不同的場景下,選擇不同的集合類型是非常重要的。