當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java ArrayList和HashSet的區別用法及代碼示例


以下是 ArrayList 和 HashSet 之間的一些差異。

  1. Inheritance:
  2. Implementation:執行:ArrayList實現 List 接口,同時HashSet實現 Set 接口 Java .
  3. 內部實現:ArrayList 由數組支持,而 HashSet 由 HashMap 支持。
  4. Duplicates :ArrayList 允許重複值,而 HashSet 不允許重複值。
  5. Constructor :ArrayList 有 3 個構造函數,分別是 ArrayList()、ArrayList(intcapacity) ArrayList(int Collection c) 而 HashSet 有 4 個構造函數,分別是 HashSet()、HashSet(intcapacity)、HashSet(Collection c) 和 HashSet(整數容量,浮點負載係數)
  6. Ordering :ArrayList 保持插入對象的順序,而 HashSet 是無序集合,不保持任何順序。
  7. Indexing :ArrayList 是基於索引的,我們可以通過調用 get(index) 方法檢索對象或通過調用 remove(index) 方法刪除對象,而 HashSet 完全基於對象。 HashSet也不提供HashMap get().
  8. 空對象:ArrayList 不施加任何限製,我們可以添加任意數量的空值,而HashSet 允許一個空值。

9.基本操作的時間複雜度:-

9.1 ArrayList普通操作的時間複雜度

add() - 需要O(1)時間;
get() - 需要恒定時間O(1);
remove() - 需要線性時間複雜度 O(n) 。它迭代整個數組以查找符合刪除條件的元素。
contains() - 它也需要線性時間複雜度 O(n)。

9.2 設置常用操作的時間複雜度

對於 HashSet,由於內部 HashMap 實現,add()、remove() 和 contains() 操作花費恒定的 O(1) 時間。

  1. 用法: 數組列表:-
ArrayList列表=新ArrayList();
  1. 哈希集:-
HashSet設置=新HashSet();

ArrayList 示例

JAVA


// Java program to demonstrate working of ArrayList in Java
import java.io.*;
import java.util.*;
class ArrayListTest {
    public static void main(String[] args)
        throws IOException
    {
        // size of ArrayList
        int n = 5;
        // declaring ArrayList with initial size n
        List<Integer> al = new ArrayList<>(n);
        // Appending the new element at the end of the list
        for (int i = 1; i <= n; i++) {
            al.add(i);
        }
        // Printing elements
        System.out.println(al);
        // Remove element at index 3
        al.remove(3);
        // Displaying ArrayList after deletion
        System.out.println(al);
        // Printing elements one by one
        for (int i = 0; i < al.size(); i++) {
            System.out.print(al.get(i) + " ");
        }
    }
}

輸出:

[1, 2, 3, 4, 5]
[1, 2, 3, 5]
1 2 3 5 

HashSet 示例

JAVA


// Java program to demonstrate working of HashSet
import java.util.HashSet;
import java.util.Set;
class HashSetDemo {
    public static void main(String[] args)
    {
        // Create a HashSet
        Set<Integer> hs = new HashSet<>();
        // add elements to HashSet
        hs.add(1);
        hs.add(2);
        hs.add(3);
        hs.add(4);
        // Duplicate removed
        hs.add(4);
        // Displaying HashSet elements
        for (Integer temp : hs) {
            System.out.print(temp + " ");
        }
    }
}

輸出:

1 2 3 4 


相關用法


注:本文由純淨天空篩選整理自Rajput-Ji大神的英文原創作品 Difference between ArrayList and HashSet in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。