当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。