📜  JavaArrayList和HashSet的区别

📅  最后修改于: 2021-09-10 02:55:28             🧑  作者: Mango

以下是 ArrayList 和 HashSet 之间的一些差异。

  1. 遗产:
  2. 执行:
    实现:ArrayList 实现了 List 接口,而 HashSet 实现了Java的Set 接口。
  3. 内部实现:
    ArrayList 由 Array 支持,而 HashSet 由 HashMap 支持。
  4. 重复:
    ArrayList 允许重复值,而 HashSet 不允许重复值。
  5. 构造函数:
    ArrayList 有 ArrayList(), ArrayList(int capacity) ArrayList(int Collection c) 三个构造函数,而 HashSet 有四个构造函数,分别是 HashSet(), HashSet(int capacity), HashSet(Collection c) 和 HashSet(int capacity, float)负载因子)
  6. 订购:
    ArrayList 维护它们插入的对象的顺序,而 HashSet 是一个无序集合,不维护任何顺序。
  7. 索引:
    ArrayList 是基于索引的,我们可以通过调用 get(index) 方法检索对象或通过调用 remove(index) 方法删除对象,而 HashSet 是完全基于对象的。 HashSet 也不提供 get() 方法。
  8. 空对象:
    ArrayList 没有任何限制,我们可以添加任意数量的空值,而 HashSet 允许一个空值。
  9. 句法:
    数组列表:-
    ArrayList 列表=新的 ArrayList();

    哈希集:-

    HashSet set=new HashSet();

ArrayList 示例

// 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 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 

哈希集示例

// 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 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