Java 中数组列表和 HashSet 的区别
原文:https://www . geesforgeks . org/ArrayList-and-hashset-in-Java/之间的差异
以下是数组列表和哈希集之间的一些区别。
- 传承:
- 实现: 实现:ArrayList 实现 List 接口,而 HashSet 在 Java 中实现 Set 接口。
- 内部实现: ArrayList 由 Array 支持,而 HashSet 由 HashMap 支持。
- 重复: 数组列表允许重复值,而哈希集不允许重复值。
- 构造函数: ArrayList 有三个构造函数,分别是 ArrayList(),ArrayList(int capacity)ArrayList(int Collection c),而 HashSet 有四个构造函数,分别是 HashSet(),HashSet(int capacity),HashSet(Collection c)和 HashSet(int capacity,float loadFactor)
- 排序: ArrayList 维护插入它们的对象的顺序,而 HashSet 是一个无序集合,不维护任何顺序。
- 索引: ArrayList 是基于索引的我们可以通过调用 get(index)方法来检索对象,也可以通过调用 remove(index)方法来移除对象,而 HashSet 是完全基于对象的。HashSet 也不提供 get()方法。
- 空对象: 数组列表不适用任何限制,我们可以添加任意数量的空值,而 HashSet 允许一个空值。
-
Syntax: ArrayList:-ArrayList list=new ArrayList();
哈希集:-
HashSet set=new HashSet();
数组列表示例
// 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
版权属于:月萌API www.moonapi.com,转载请注明出处