HashSet和ArrayList都是Java Collection框架中最重要的一些类。
以下是ArrayList和HashSet之间的重要区别。
序号 | 键 | 数组列表 | 哈希集 |
---|---|---|---|
1 | 实作 | ArrayList是列表接口的实现。 | 另一方面,HashSet是set接口的实现。 |
2 | 内部实施 | ArrayList在内部实现其实现的数组。 | HashSet在内部将Hashmap用于其实现。 |
3 | 元素顺序 | ArrayList保持插入顺序,即插入对象的顺序。 | HashSet是无序集合,不维护任何顺序。 |
4 | 重复项 | ArrayList允许在其集合中使用重复值。 | 另一方面,Hashset中不允许重复元素。 |
5 | 指数表现 | ArrayList使用索引来实现其性能,即基于索引的索引可以通过调用get(index)来检索对象,也可以通过调用remove(index)来删除对象。 | HashSet完全基于对象,但不提供get() 方法。 |
6 | 允许为空 | 可以将任何数量的null值插入到arraylist中,而没有任何限制。 | 另一方面,哈希集在其集合中仅允许一个空值,此后不允许添加任何空值。 |
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