Java中ArrayList和HashSet的区别


HashSet和ArrayList都是Java集合框架中最重要的类。

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

序号关键点ArrayListHashSet
1实现ArrayList是List接口的实现。另一方面,HashSet是Set接口的实现。
2内部实现ArrayList内部使用数组实现。HashSet内部使用HashMap实现。
3元素顺序ArrayList保持插入顺序,即对象插入的顺序。HashSet是一个无序集合,不保持任何顺序。
4重复元素ArrayList允许集合中存在重复值。另一方面,HashSet不允许重复元素。
5索引性能ArrayList使用索引来提高性能,即基于索引的,可以通过调用get(index)方法检索对象,或通过调用remove(index)方法删除对象。HashSet完全基于对象,它不提供get()方法。
6允许空值可以在ArrayList中插入任意数量的空值,没有任何限制。另一方面,HashSet在其集合中只允许一个空值,之后不允许添加任何空值。

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

更新于:2019年9月18日

14K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告