以下是 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