Java中ArrayList和HashSet的区别

以下是 ArrayList 和 HashSet 之间的一些区别。
1、继承
继承

2、执行
实现:ArrayList 实现 List 接口,而 HashSet 在 Java 中实现 Set 接口。

3、内部实现
ArrayList 由 Array 支持,而 HashSetHashMap 支持。

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

(0)
上一篇 2022年6月7日 01:10
下一篇 2022年6月7日 01:10

相关推荐

发表回复

登录后才能评论