以下是 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 loadFactor)
6、顺序
ArrayList 维护插入对象的顺序,而 HashSet 是无序集合,不维护任何顺序。
7、索引
ArrayList 是基于索引的,可以通过调用 get(index)
方法检索对象或通过调用 remove(index)
方法删除对象,而 HashSet
完全基于对象。 HashSet 也不提供 get()
方法。
8、空对象
ArrayList 没有任何限制,可以添加任意数量的空值,而 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<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 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
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/264232.html