下面是ArrayList和HashSet之间的几个区别。
继承关系:
- 实现:ArrayList实现List接口,而HashSet实现Java中的Set接口。
- 内部实现:ArrayList由Array支持,而HashSet由HashMap支持。
- 重复项:ArrayList允许重复值,而HashSet不允许重复值。
- 构造函数: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()方法。 - 空对象:ArrayList没有施加任何限制,可以添加任意数量的
null
值,而HashSet允许null
值。
语法:
ArrayList:
ArrayList list=new ArrayList();
HashSet:
HashSet set=new 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
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.hasdiffer.com]
本文标题:Java ArrayList和HashSet的区别
本文链接:http://www.vsdiffer.com/arraylist-vs-hashset-in-java.html
免责声明:本站部分内容除注明转载外,均为本站网站用户投稿或互联网整理。对于该内容的正确性如何,本站不负任何责任。同时,如本网站内容无意之中冒犯了您的权益,请联系站长,邮箱:1478761107#qq.com(使用@代替#),我们核实并会尽快处理。
相关主题
- AJAX和Javascript的区别
- Groovy和Java的区别
- HashMap和HashSet的区别
- Java 7和Java 8的区别
- Java ArrayList和HashMap的区别
- Java Integer和int的区别
- Java Path和File类的区别
- JavaScript和AngularJS的区别
- JavaScript和HTML的区别
- JavaScript和PHP的区别
- Java中Array的长度和ArrayList的大小区别的区别
- Java中抽象类和接口的区别