1、LinkedHashSet 定义
LinkedHashSet 是由 LinkedHashMap 实现的集合。元素有序且不能重复。
看上图类定义,LinkedHashSet 是由 HashSet 来实现的,其实底层是通过 LinkedHashMap 来实现的。
2、构造函数
在 LinkedHashSet 中,有如下几个构造方法:
①、指定初始容量和加载因子
②、指定初始容量
③、默认无参构造函数
④、构造包含指定集合的元素
上面所有的构造方法,都调用父类,也就是 HashSet 的 super(initialCapacity, loadFactor, true);
前面两个参数分别设置HashMap 的初始容量和加载因子。dummy 可以忽略掉,这个参数只是为了区分 HashSet 别的构造方法。
3、添加元素
通过 map.put() 方法来添加元素,说明了该方法如果新插入的key不存在,则返回null,如果新插入的key存在,则返回原key对应的value值(注意新插入的value会覆盖原value值)。
也就是说 add(E e) 方法,会将 e 作为 key,PRESENT 作为 value 插入到 map 集合中,如果 e 不存在,则插入成功返回 true;如果存在,则返回false。
4、删除元素
调用 HashMap 的remove(Object o) 方法,该方法会首先查找 map 集合中是否存在 o ,如果存在则删除,并返回该值,如果不存在则返回 null。
也就是 remove(Object o) 方法,删除成功返回 true,删除的元素不存在会返回 false。
5、查找元素
调用 HashMap 的 containsKey(Object o) 方法,找到了返回 true,找不到返回 false。
6、遍历元素
7、小结
好了,这就是JDK中java.util.LinkedHashSet 类的介绍,记住有序且不能重复。
面试大全包括:包括 Java 集合、JVM、多线程、并发编程、设计模式、SpringBoot、SpringCloud、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、Python、HTML、CSS、Vue、React、JavaScript、Android 大数据、阿里巴巴等大厂面试题等、等技术栈!
我是指北君,操千曲而后晓声,观千剑而后识器。感谢各位人才的:点赞、收藏和评论,我们下期更精彩!