1. list,map,set三個介面存儲元素時各有什麼特點
(一)List
1、可以允許重復的對象。
2、可以插入多個null元素。
3、是一個有序容器,保持了每個元素的插入順序,輸出的順序就是插入的順序。
4、常用的實現類有ArrayList、LinkedList 和 Vector。ArrayList 最為流行,它提供了使用索引的隨意訪問,而 LinkedList 則對於經常需要從 List 中添加或刪除元素的場合更為合適。
(二)Set
1、不允許重復對象。
2、無序容器,你無法保證每個元素的存儲順序,TreeSet通過 Comparator 或者 Comparable。
3、只允許一個 null 元素。
4、Set 介面最流行的幾個實現類是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基於 HashMap 實現的 HashSet。
(三)map
1、Map不是collection的子介面或者實現類。Map是一個介面。
2、Map 的 每個 Entry 都持有兩個對象,也就是一個鍵一個值,Map 可能會持有相同的值對象但鍵對象必須是唯一的。
3.、TreeMap 也通過 Comparator 或者 Comparable 維護了一個排序順序。
4.、Map 里你可以擁有隨意個 null 值但最多隻能有一個 null 鍵。
5、Map 介面最流行的幾個實現類是 HashMap、LinkedHashMap、Hashtable 和 TreeMap。(HashMap、TreeMap最常用)。
(1)練習map存儲值擴展閱讀
list和set、map之間的轉化方式:
1、list轉成set集合
Set<Student>
studentSet=studentList.stream().map(Student::getId).collect(Collectors.toSet());
2、list轉成map
Map<String,Student>
studentMap=studentList.stream().collect(Collectors.toMap(Student::getId,a -> a,(k1,k2)->k1));
3、list轉成map並且根據student中的name進行分組
Map<String,List<Student>>
group=studentList.stream().collect(Collectors.groupingBy(Student::getName));
2. java中map可以存放哪些信息
java map是以鍵值對的方式保存數據的,map中的鍵key和值value可以是各種對象,如String、Double、Integer、或者自己定義的類對象,不能是普通基本類型如int、double等