Java集合——Set接口实现类的源码剖析——最认真的图解——第二章

本文深入探讨了Java中的Set接口,重点是HashSet的实现原理和特性。通过集合体系图介绍了Set与Collection的关系,详细讲解了HashSet的底层机制,包括基于HashMap的存储结构、扩容机制和红黑树转换。此外,还提供了HashSet的实战案例,展示了如何处理重复元素,以及对比分析了LinkedHashSet的插入有序特性。
摘要由CSDN通过智能技术生成

1:集合体系图

Collection:单列集合,该接口有两个重要的子接口List Set,他们的实现子类都是单列集合
在这里插入图片描述
Map:双列集合,Map接口的实现子类,存放K-V
在这里插入图片描述

2:Set接口和常用方法

Set接口基本介绍

1)无序(添加和取出的顺序不一致)没有索引(没有get方法,所以也没有普通for循环遍历)
2) 不允许重复元素,所以最多包含一个null
3) JDK API中Set接口的实现类有:
在这里插入图片描述
Set接口的常用方法

和List接口一样,Set接口也是Collection的子接口,因此,常用方法和Collection接口一样.

Set接口的遍历方式

同Collection的遍历方式一样,因为Set接口是Collection接口的子接口。
1.可以使用迭代器

2.增强for

3.不能使用索引的方式来获取.

案例演示

public class SetMethod {
   
    public static void main(String[] args) {
   
        //注意:取出的顺序虽然不是添加的顺序,但是它是固定的
        Set hashSet = new HashSet();
        hashSet.add("zlj");
        hashSet.add("zlj");
        hashSet.add("zzz");
        hashSet.add(null);
        hashSet.add(null);
        System.out.println("hashSet="+hashSet);
                System.out.println("=======Iterator遍历==========");
        Iterator iterator = hashSet.iterator();
        while (iterator.hasNext()) {
   
            Object next =  iterator.next();
            System.out.println("hashSet="+next);
        }
        System.out.println("=======增强for循环遍历==========");

        for (Object object:hashSet){
   
            System.out.println("hashSet="+object);
        }
    }
}
hashSet=[null, zlj, zzz]
=======Iterator遍历==========
hashSet=null
hashSet=zlj
hashSet=zzz
=======增强for循环遍历==========
hashSet=null
hashSet=zlj
hashSet=zzz

3:HashSet全面说明

  1. HashSet实现了Set接口

  2. HashSet实际上是HashMap

    public HashSet() {
   
        map = new HashMap<>(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值