Set 唯一 无序
有相同的元素就不在添加了
底层数据结构是哈希表
存放自定义类型时需要重写hashCode()方法级equals()方法
Hash表原理
/***
-
(1)调用hashCode()方法计算Hash码值
-
(2)根据y=k(x)这样的函数计算存储位置
-
(3)如果位置上没有元素,则将元素存储
-
(4)如果该位置上有元素,则需调用equals方法比较内容是否相同
*/
使用api大致和map相同
要注意的是
存放自定义类型时需要重写hashCode()方法级equals()方法
package com.lin.map;
import java.util.HashSet;
import java.util.Iterator;
public class TestHashSet {
public static void main(String[] args) {
//HashSet底层数组结构使用的是hash表 ,主结构数组, +链表
//创建集合对象
HashSet hs=new HashSet();
hs.add("hello");
System.out.println( hs.add("world"));
hs.add("java");
System.out.println(hs.add("world"));
System.out.println("集合中元素的个数:"+hs.size());
System.out.println(hs);
System.out.println(hs.contains("java")+"\t"+hs.contains("sql"));
//使用迭代器遍历元素
Iterator ite=hs.iterator();
while(ite.hasNext()){
System.out.println(ite.next());
}
}
}
来源:CSDN
作者:SIayer
链接:https://blog.csdn.net/SIayer/article/details/104904794