Java中List、Set和Map的區別
Java 有一個 java.util 包,其中包含一個 Collection 介面。此介面有許多子介面和類,例如 List、Set 和 Map。在本文中,我們將學習 List、Set 和 Map 之間的區別。
什麼是List介面?
Java 有一個 Collection 介面,List 是 Collection 的子介面。此介面包含插入、更新、刪除和搜尋等方法。開發人員也可以插入空元素。
List介面示例
List 介面可以在 java.util 包中找到。下面是一個 List 的示例:
import java.util.*;
public class ListExample {
public static void main (String args[]) {
List<String> mylist = new ArrayList<>();
mylist.add("James Bond");
mylist.add("Superman");
mylist.add("Spiderman");
for(String superhero : mylist)
System.out.println(superhero);
}
}
輸出
James Bond Superman Spiderman
什麼是Set介面?
Set 是一個擴充套件 Collection 介面的介面。它在 java.util 包中可用。這是一個介面,其中重複項不被考慮,在列印輸出時將被忽略。
Set介面示例
這是一個 Set 介面的簡單示例。
import java.util.*;
public class MySet {
public static void main (String args[]) {
Set<String> setmyalp = new HashSet<String>();
setmyalp.add("A");
setmyalp.add("B");
setmyalp.add("C");
setmyalp.add("D");
setmyalp.add("E");
System.out.println(setmyalp);
}
}
輸出
[A, B, C, D, E]
什麼是Map介面?
Map 是一個可以在 java.util 包中找到的介面。這是一個用於將鍵與值匹配的介面。在 Map 介面中儲存鍵和值後,使用者只需使用鍵即可獲取其值。
Map介面示例
這是一個使用 Map 介面的示例。
import java.util.*;
public class MyMap {
public static void main (String args[]) {
Map<String, String> mapvalue =new HashMap<String, String>();
mapvalue.put("Fruit" , "Apple");
mapvalue.put("Vegetable" , "Potato");
mapvalue.put("Nut" , "Groundnut");
for(Map.Entry me : mapvalue.entrySet()) {
System.out.println(me.getKey() + " " + me.getValue());
}
}
}
輸出
Fruit Apple Nut Groundnut Vegetable Potato
Java中List、Set和Map介面的區別
List、Set 和 Map 介面屬於 java.util 包,它們擴充套件了 Collection 介面。它們之間有一些區別,可以在下表中找到:
| List | Set | Map |
|---|---|---|
| List 介面允許重複值。 | Set 介面不允許重複值。 | Map 介面不允許重複鍵。 |
| List 保持插入順序。 | Set 不保持插入順序。 | Set 不保持插入順序。 |
| 可以向列表中新增任意數量的空值。 | Set 只能新增一個空值。 | Map 允許單個空鍵,但空值可以是任意數量。 |
實現 List 介面的類有:
|
實現 Set 介面的類有:
|
實現 Map 介面的類有:
|
| 可以透過 List 介面中的 get() 方法從索引中提取元素。 | Set 介面中沒有可用於從特定索引檢索元素的 get 方法。 | Map 介面中沒有可用於從特定索引檢索元素的 get() 方法。 |
| List 可用於從不同索引檢索元素。 | Set 介面可用於建立僅包含唯一值的集合。 | Map 可用於以鍵值對的形式儲存資料。 |
| 可以使用 ListIterator 遍歷 List。 | 可以使用 Iterator 遍歷 Set 元素。 | 可以使用 keyset、value 和 entrySet 遍歷鍵值對。 |
結論
List、Set 和 Map 介面屬於 java.util 包,它們擴充套件了 Collection 介面。List 允許重複值,並且值的插入是有序的。Set 和 Map 介面不允許重複值,並且插入不是有序的。所有這些介面都用於不同的目的。
關於List、Set和Map的常見問題
1. List、Set 和 Map 介面屬於哪個包?
List、Map 和 Set 介面屬於 java.util 包。它們擴充套件了 Collection 介面。List 和 Set 介面用於新增、刪除或更新元素,而 Map 介面遵循鍵值對。
2. 在所有這些介面中可以插入多少個空值?
可以在 List 介面中插入任意數量的空值,而 Set 只支援一個空值。在 Map 介面中,鍵只能有一個空值,但值可以有任意數量的空值。
3. 哪些類實現了 List 介面?
List 介面可以由以下類實現:
- ArrayList
- LinkedList
4. 哪個介面允許插入重複值?
可以在 List 介面中插入重複值,但在 Set 和 Map 介面中則不行。
5. 哪個介面具有 get 方法來檢索特定索引處的元素?
只有 List 介面具有 get() 方法來從特定索引檢索元素。
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP