Java中有兩個非常常用的集合框架:Set和Map。雖然它們都可以存儲不同的對象,但它們的用途和實現(xiàn)不同。
Set是一個接口,它表示不包含任何重復(fù)元素的集合。Set的實現(xiàn)類有HashSet、LinkedHashSet和TreeSet。HashSet使用哈希表來存儲元素,LinkedHashSet使用哈希表加雙向鏈表來存儲元素,TreeSet使用紅黑樹來存儲元素。例如:
Setset = new HashSet<>(); set.add("apple"); set.add("banana"); set.add("orange"); set.add("apple"); System.out.println(set); // [orange, banana, apple]
Map也是一個接口,它表示一組成對的(key, value)對象,key是唯一的,value可以重復(fù)。Map的實現(xiàn)類有HashMap、LinkedHashMap和TreeMap。HashMap使用哈希表來存儲鍵值對,LinkedHashMap使用哈希表加雙向鏈表來存儲鍵值對,TreeMap使用紅黑樹來存儲鍵值對。例如:
Mapmap = new HashMap<>(); map.put("apple", 3); map.put("banana", 5); map.put("orange", 7); map.put("apple", 2); System.out.println(map); // {orange=7, banana=5, apple=2}
在使用Set和Map時,需要注意它們的性能和線程安全性。HashSet和HashMap是非線程安全的,LinkedHashSet和LinkedHashMap是有序的,TreeSet和TreeMap是有序且自動排序的。如果需要線程安全版本,則可以使用ConcurrentHashMap和ConcurrentSkipListSet。
上一篇vue常見坑解決
下一篇css 可以寫梯形嗎