Java中ArrayList和HashSet之间的区别

首页 / 新闻资讯 / 正文

HashSet和ArrayList都是Java Collection框架中最重要的一些类。

以下是ArrayList和HashSet之间的重要区别。

序号 数组列表 哈希集
1 实作 ArrayList是列表接口的实现。 另一方面,HashSet是set接口的实现。
2 内部实施 ArrayList在内部实现其实现的数组。 HashSet在内部将Hashmap用于其实现。
3 元素顺序 ArrayList保持插入顺序,即插入对象的顺序。 HashSet是无序集合,不维护任何顺序。
4 重复项 ArrayList允许在其集合中使用重复值。 另一方面,Hashset中不允许重复元素。
5 指数表现 ArrayList使用索引来实现其性能,即基于索引的索引可以通过调用get(index)来检索对象,也可以通过调用remove(index)来删除对象。 HashSet完全基于对象,但不提供get()方法。
6 允许为空 可以将任何数量的null值插入到arraylist中,而没有任何限制。 另一方面,哈希集在其集合中仅允许一个空值,此后不允许添加任何空值。

ArrayList与Hashset的示例

JavaTester.java

import java.io.*; import java.util.*; public class JavaTester {    public static void main(String[] args) throws IOException{       int n = 5;       List<Integer> al = new ArrayList<>(n);       for (int i = 1; i <= n; i++) {          al.add(i);       }       System.out.println(al);       al.remove(3);       System.out.println(al);       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

示例

JavaTester.java

import java.util.HashSet; import java.util.Set; public class JavaTester {    public static void main(String[] args){       Set<Integer> hs = new HashSet<>();       hs.add(1);       hs.add(2);       hs.add(3);       hs.add(4);       hs.add(4);       for (Integer temp : hs) {          System.out.print(temp + " ");       }    } }

输出结果

1 2 3 4