`

HashSet 源码解读

阅读更多
1. HashSet底层是怎样实现的呢?
   是HashMap,看看它的构造函数就知道了。

   
public boolean add(E e) {
	return map.put(e, PRESENT)==null;
    }



   这里的
PRESENT
是什么呢?再看看它的定义是什么。
  
 private static final Object PRESENT = new Object();


   也即是利用HashMap的key来存储Set的数据。Set不能存储重复的数据,是不是就覆盖了呢?这
   个问题被问得好多次了,有人说重写了eqauls和hashcode方法,我想key重复了怎么会有多个
   呢?

2.遍历
 
    public Iterator<E> iterator() {
	   return map.keySet().iterator();
    }
  


如果对HashMap比较熟悉的话,HashSet就会很熟悉了,因为HashSet是基于HashMap来实现的。
分享到:
评论

相关推荐

    java源码解读-java-src:java源码解读

    Java源码解读是Java开发人员深入理解平台工作原理和编程模型的重要途径。在这个"java-src:java源码解读"项目中,我们可以探索Java的核心库,包括JVM(Java虚拟机)、集合框架、并发机制、I/O流、网络编程等多个关键...

    java源码解读-ITG-JavaBook01:Java面试高频源码解读

    《Java源码解读-ITG-JavaBook01: Java面试高频源码解读》是一部针对Java程序员面试准备的深入学习资料。在这个项目中,我们将会探索Java语言的一些核心概念和常用库的源代码,帮助开发者更好地理解Java的内部机制,...

    Android+上百实例源码分析以及开源分析+集合打包3

    源码解读可以帮助我们了解系统内部的工作机制,理解API的设计思路,甚至启发我们去优化现有代码或者开发新的功能。例如,对Android系统的四大组件(Activity、Service、BroadcastReceiver、ContentProvider)的源码...

    集合类底层源码解析汇总

    java所有集合类底层源码解析汇总,包括ArrayList、HashMap、HashSet、LinkedList、TreeMap、HashSet、ConcurrentHashMap等集合框架的底层实现源码大白话解读。

    java8源码-JavaRobot:Java学习笔记,JavaLearningNote

    源码解读 String源码系列 List源码系列 ArrayList LinkedList CopyOnWriteArrayList Vector Map源码系列 HashMap LinkedHashMap ConcurrentHashMap TreeMap Hashtable Set源码系列 HashSet LinkedHashSet TreeSet ...

    Information by people_java编程_enjoyz2u_people_源码.zip

    理解类的定义、构造函数、方法、继承层次和多态性对解读源码至关重要。 3. **异常处理**:Java提供了异常处理机制,通过try-catch-finally语句块来捕获和处理运行时错误。源码中可能会有异常的处理逻辑。 4. **...

    Java学习笔记(源码)

    【Java学习笔记(源码)】是一份详细记录了Java编程语言学习过程的资源集合,包含实际的源代码示例。这份笔记旨在帮助初学者和有一定经验的开发者深入理解和掌握Java语言的核心概念、语法以及常见应用。以下是笔记中...

    coreJava 达内源码

    本文将围绕达内的Core Java培训源码,对其中的关键知识点进行详细解读。 一、Java基础 1. 类与对象:Java是一种面向对象的语言,类是对象的模板,对象则是类的实例。理解类的定义、对象的创建及成员变量和方法的...

    易语言节点去重源码.7z

    本文将围绕“易语言节点去重源码”进行详细解读,旨在帮助读者理解其工作原理,并掌握在实际项目中的应用方法。 首先,我们要理解“节点去重”的概念。在计算机科学中,节点通常指数据结构中的元素,如链表、树结构...

    core java 视频源码

    以下是根据章节名称对每个部分可能涉及的核心Java知识点的详细解读: 1. **第06章** - 这一章可能涉及到Java基础语法,包括变量、数据类型、运算符、流程控制(如if语句、for循环和while循环)、方法的定义和调用,...

    JAVA开发中的各种代码或者项目源码

    5. **集合框架**:ArrayList、LinkedList、HashMap、HashSet等是Java程序员必备的知识,它们提供了数据存储和操作的高效方式。 6. **IO与NIO**:Java输入输出系统是程序与外部数据交互的基础,而NIO(非阻塞I/O)...

    java集合源码-collectionAnalysis:java集合源码解析

    在"collectionAnalysis-master"这个项目中,可能包含了对这些集合类的源码解读、测试用例和分析报告。源码分析通常会涉及以下几个方面: 1. 数据结构:分析集合类底层的数据结构,如数组、链表或树。 2. 方法实现:...

    《Java开发典型模块大全》光盘源码part4(15-21章)

    6. **集合框架**:20章可能详细解读了Java集合框架,包括List(ArrayList、LinkedList)、Set(HashSet、TreeSet)、Map(HashMap、LinkedHashMap)以及它们之间的关系和选择原则。 7. **IO与NIO**:21章可能深入...

    javajdk1.8源码-Java-source-reading:jdk1.8源代码分析

    限于个人水平出现的解读错误 编辑错误 排版不统一 如发现有错,欢迎指正! 如果对你有用,不妨点个star吧 !(。・ω・。) 近期计划:以jdk为主,java.lang和java.util下一些重要的类以及juc,将来可能会写web框架...

    Thinking In Java源码 source code fo Thinking in Java

    以下是对这些源代码的一些详细解读和相关知识点的介绍。 1. **基础语法与数据类型**: - `tij4-code`中的许多文件展示了基本的Java语法,如变量声明、数据类型(整型、浮点型、字符型、布尔型等)以及复合类型...

    Java2范例入门与提高(源码)

    4. **Chap04** - 集合框架:Java集合框架提供了多种数据结构,如ArrayList、LinkedList、HashSet、HashMap等,这部分会解释它们的使用场景、操作方法和性能特性。 5. **Chap05** - 文件和I/O流:这部分可能涉及文件...

    think in java source code

    以下是对《Think in Java》源码中一些重要知识点的详细解读: 1. **面向对象编程基础**:书中通过丰富的例子展示了类、对象、封装、继承和多态等面向对象编程的基本概念。源码中你可以看到如何定义类,如何创建对象...

    深入解读大厂java面试必考点之HashMap全套学习资料

    HashMap是Java编程语言中最常用的集合类之一,尤其在面试中,HashMap的相关知识是考察...这套学习资料应该包含了HashMap的实例分析、源码解读、常见面试题以及实战演练等内容,确保你全面掌握这一核心Java数据结构。

    Java高级编程资料源码.zip

    2. **集合框架**:Java集合框架是存储和管理对象的重要工具,包括List(如ArrayList和LinkedList)、Set(如HashSet和TreeSet)和Map(如HashMap和TreeMap)。理解它们的内部实现原理和使用场景至关重要。 3. **...

    thinking in java 源代码

    以下是对这些源代码的一些关键知识点的详细解读: 1. **面向对象编程**:Java是一种纯面向对象的语言,源码中会涵盖类、对象、封装、继承、多态等基本概念。类是对象的蓝图,对象则是类的实例。封装是通过访问修饰...

Global site tag (gtag.js) - Google Analytics