Java 中 ArrayList 和 HashSet 的区别

javaobject oriented programmingprogramming更新于 2025/11/25 10:52:17

HashSet 和 ArrayList 都是 Java Collection 框架中最重要的类。

以下是 ArrayList 和 HashSet 之间的重要区别。

Sr.不。关键ArrayListHashSet
1实现ArrayList 是列表接口的实现。另一方面,HashSet 是集合接口的实现。
2内部实现ArrayList 在内部实现了数组。HashSet 在内部使用 Hashmap 实现。
3顺序元素ArrayList 维护插入顺序,即插入对象的顺序。HashSet 是一个无序集合,不维护任何顺序。
4重复ArrayList 允许其集合中有重复的值。另一方面,Hashset 中不允许重复元素。
5索引性能ArrayList 使用索引来提高性能,即基于索引,可以通过调用 get(index) 检索对象或通过调用 remove(index) 删除对象HashSet 完全基于对象,也不提供 get() 方法。
6允许 Null可以在 arraylist 中插入任意数量的 null 值,没有任何限制。另一方面,Hashset 只允许其集合中有一个 null 值,之后不允许添加任何 null 值。

ArrayList 与 Hashset 的示例

JavaTester.java

import java.io.*;
import java.util.*;
public class JavaTester {
   public static void main(String[] args) throws IOException{
      int n = 5;
      List<Integer> al = new ArrayList<>(n);
      for (int i = 1; i <= n; i++) {
         al.add(i);
      }
      System.out.println(al);
      al.remove(3);
      System.out.println(al);
      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

示例

JavaTester.java

import java.util.HashSet;
import java.util.Set;
public class JavaTester {
   public static void main(String[] args){
      Set<Integer> hs = new HashSet<>();
      hs.add(1);
      hs.add(2);
      hs.add(3);
      hs.add(4);
      hs.add(4);
      for (Integer temp : hs) {
         System.out.print(temp + " ");
      }
   }
}

输出

1 2 3 4

相关文章


有用资源