Hash,人称哈希,是一种算法,与指纹一样,它是一种以较短的信息来保证文件唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律。Java用这个特性,开发出了HashSet,一个不允许有重复元素的,不记录插入元素的顺序,允许有null值的数据结构。
14.1 新增元素
数据结构里的新增元素,总和add方法过不去,HashSet也是一个样。不同的是,在HashSet新增元素时,如果元素已经存在,它就不会再新增了。既然无序,也就没有下标的说法了,也就不能在指定位置插入数据了。
/* * 老陈说编程 * HashSet讲解 */import java.util.HashSet;public class HashSetIntro { public static void main(String[] args) { //声明字符串链表 HashSet lang = new HashSet<>(); //新增元素 lang.add("中文"); lang.add("英文"); lang.add("法文"); //存在元素不再新增 lang.add("法文"); System.out.println(lang); }}
输出结果
[中文, 英文, 法文]
14.2 删除元素
用remove(Object o)删除单个元素的方法,如果此集合包含元素,返回true ,否则返回false;如果你想要清空所有元素,用clear()方法即可。
/* * 老陈说编程 * HashSet讲解 */import java.util.HashSet;public class HashSetIntro { public static void main(String[] args) { //声明字符串链表 HashSet lang = new HashSet<>(); //新增元素 lang.add("中文"); lang.add("英文"); lang.add("法文"); //删除单个元素 lang.remove("英文"); System.out.println(lang); //清空所有元素 lang.clear(); System.out.println(lang); }}
输出结果
[中文, 法文][]
14.3 访问元素
用size()方法,返回元素个数;用for-each循环迭代所有元素;用isEmpty()判断集合是否有元素,有返回true,否则返回false;如果你想判断集合是否存在某个元素,可以用contains(Object o)方法,如果此set包含指定的元素,则返回true ,否则返回false。
/* * 老陈说编程 * HashSet讲解 */import java.util.HashSet;public class HashSetIntro { public static void main(String[] args) { //声明字符串链表 HashSet c3 = new HashSet<>(); //新增元素 c3.add("单车"); c3.add("摩托车"); c3.add("飞机"); //判断集合是否为空 boolean c = c3.isEmpty(); System.out.println("有元素:" + c); //获取元素个数 int size = c3.size(); System.out.println("元素个数:" + size); //不可用下标访问,因为无序 for (String s : c3) { System.out.println(s); } //是否能存在某个元素 boolean b = c3.contains("高铁"); System.out.println(b); }}
输出结果
有元素:false元素个数:3摩托车单车飞机false
噔噔噔,又到送福利的时间了。
好了,有关Java数据结构之HashSet内容就这么多了,如果你觉得老陈这样讲还可以的话,你就转发和点赞,你的轻轻一点,就是对老陈继续创作的最大鼓励和支持。
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。我在分享Python,前端、Java和App方面的干货。关注我,没错的。
#Java##APP##鸿蒙APP##Web##Spring#