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