在Java中,常用的集合框架有以下幾個:
1、List(列表):List是有序的集合,允許包含重復元素。常用的實現類有ArrayList和LinkedList。ArrayList是基于動態數組實現的,支持快速隨機訪問;LinkedList是基于雙向鏈表實現的,對插入和刪除操作更高效。
2、Set(集合):Set是無序的集合,不允許包含重復元素。常用的實現類有HashSet和TreeSet。HashSet基于哈希表實現,支持快速查找;TreeSet基于二叉搜索樹實現,元素按照升序排序。
3、Queue(隊列):Queue是一種先進先出(FIFO)的數據結構。常用的實現類有LinkedList和PriorityQueue。LinkedList可以用作隊列的實現,PriorityQueue基于堆實現,具有優先級的特性。
4、Map(映射):Map是鍵值對的集合,不允許重復的鍵。常用的實現類有HashMap和TreeMap。HashMap基于哈希表實現,以鍵為索引,存儲鍵值對;TreeMap基于紅黑樹實現,元素按照鍵的升序排序。
這些集合之間的區別主要在于:
1、有序與無序:List和Map是有序的,即元素的順序是按照插入順序或排序順序存儲的;Set和Queue是無序的,即元素沒有固定的順序。
2、是否允許重復元素:List和Set都可以包含重復元素,而Map的鍵不能重復。
3、性能特點:不同集合在插入、刪除、查找等操作的性能特點有所差異,可以根據具體需求選擇適合的集合實現。?
下面是總結一些和Map集合相關的內容
1、用?keySet()?循環遍歷?Map
Map<String, Integer> map = new HashMap<>();
map.put("one",0);
map.put("two",1);
map.put("three",2);
map.put("four",3);
map.put("five",4);for (String key : map.keySet()) {Integer value = map.get(key);System.out.println("Key: " + key + ", Value: " + value);
}
2、用?entrySet()?循環遍歷?Map
Map<String, Integer> map = new HashMap<>();
map.put("one",0);
map.put("two",1);
map.put("three",2);
map.put("four",3);
map.put("five",4);for (Map.Entry<String, Integer> entry : map.entrySet()) {String key = entry.getKey();Integer value = entry.getValue();System.out.println("Key: " + key + ", Value: " + value);
}
3、用?Java?8?的?forEach循環遍歷?Map
Map<String, Integer> map = new HashMap<>();
map.put("one",0);
map.put("two",1);
map.put("three",2);
map.put("four",3);
map.put("five",4);// 單行使用
map.forEach((key, value) -> log.info(key + " = " + value));
// 多行多行
map.forEach((key, value) -> {System.out.println("Key: " + key + ", Value: " + value);log.info(key + " = " + value);
});