List 和 Set 在 Java 中的區別
List 和 Set 兩個介面都屬於 Collection 框架。這兩個介面都擴充套件了 Collection 介面。它們都用於將一組物件儲存為一個單位。
在 jdk1.2 之前,我們使用陣列、向量和雜湊表將物件分組為一個單位。
| 序號 | 鍵 | List | Set |
|---|---|---|---|
| 1 | 位置訪問 | List 提供對集合中元素的位置訪問。 | Set 不提供對集合中元素的位置訪問。 |
| 2 | 實現方式 | List 的實現方式包括 ArrayList、LinkedList、Vector 和 Stack。 | Set 介面的實現方式為 HashSet 和 LinkedHashSet。 |
| 3 | 重複 | 我們可以在 list 中儲存重複元素。 | 我們不能在 Set 中儲存重複元素。 |
| 4 | 排序 | List 保持集合中元素的插入順序。 | Set 不保持任何順序。 |
| 5 | Null 元素 | List 可以儲存多個 null 元素。 | Set 只能儲存一個 null 元素。 |
List 示例
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class ListExample {
public static void main(String[] args) {
List<String> al = new ArrayList<String>();
al.add("BMW");
al.add("Audi");
al.add("BMW");
System.out.println("List Elements: ");
System.out.print(al);
}
}
輸出
List Elements: [BMW, Audi, BMW]
Set 示例
import java.util.Set;
import java.util.HashSet;
import java.util.TreeSet;
public class SetExample {
public static void main(String args[]) {
int count[] = {2, 4, 3, 5};
Set<Integer> hset = new HashSet<Integer>();
try{
for(int i = 0; i<4; i++){
hset.add(count[i]);
}
System.out.println(hset);
}
catch(Exception e){
e.printStackTrace();
}
}
}
輸出
[2, 3, 4, 5]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP