概念:HashSet相对比于LinkedList集合于JAVA——ArrayList集合而言HashSet的不同点在于拥有唯一性,而且是无序的,且没有索引,因为是无序且没有索引的所以普通的for循环并不能便利出该集合,需要使用更高级的循环foreach来遍历出set集合中的元素。对于HashSet来说,有一个<E>代表泛型
特点:无序且元素值的唯一性,该集合没有索引,允许有null值但只能有一个。
没有索引:就是没有类似与数组的下标所以该集合是无序的与普通数组相比它相当于没有下标的数组
所取类:该类需要导入import后使用,所属泛型是一种指定的数据类型,也就是装在集合中的所有元素,全部都是统一的类型。泛型只能是引用类型,不能是基本类型
常用的Hashet方法有:
.add():可以向集合中添加元素
.remove():可以删除集合中的任意元素,可以通过直接引用元素名来删除
.iterator():迭代器,可以获取集合中的所有元素,然后通过while循环将其便利出
.size():可以获取集合的总长度
.clear():可以移除集合中的所有元素
.isEmpty():判断集合中是否存在相应元素,如果不存在则返回true,否则返回flase
代码如下:
package com.ytzl.第一章.y1;
import java.util.HashSet;
import java.util.Iterator;
public class set {
public static void main(String[] args) {
HashSet<Object> set = new HashSet<>();
set.add("java");//集合中添加元素
set.add("JAVA");//集合中添加元素
set.add("java");//集合中添加元素
System.out.println("该集合的长度" + set.size());
set.add("a");//集合中添加元素
set.add("b");//集合中添加元素
set.add("c");//集合中添加元素
set.add("d");//集合中添加元素
for (Object object ://因为HashSet集合是无序的所以不能用普通for循环需要用到foreach循环
set) {
System.out.print(object+"\t");
}
set.remove("a");//删除集合中的元素
if (set.isEmpty()){
System.out.println("该集合中不存在元素");
}else {
System.out.println("\n该集合中存在元素");
Iterator<Object> iterator = set.iterator();//通过迭代器获取所有值
while (iterator.hasNext()){
System.out.print(iterator.next()+"\t");
}
set.clear();//清空元素
System.out.println("\n清空之后");
if (set.isEmpty()){
System.out.print("该集合不存在元素");
}
}
}
}
运行结果如下
HashSet集合相较于List集合而言它的不同点在于它是无序的,且有唯一性。