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]
廣告