HashMap源码解析(JDK11) 概览 HashMap 根据 key 的 hashCode 值进行储存数据,大多数情况喜爱可以直接定位到他的值,因此有很快的访问速度遍历的顺序不确定,并且不能保证顺序不改变扩容是一个特别耗性能的操作,所以 在使用时可以先给一个大致的容量允许一条记录的 key 为 null,且允许多条记录的 value 为 nul…
以Eclipse/IDEA为例,在自定义类中可以调用工具自动重写equals和hashCode。问题:为什么用Eclipse/IDEA复写hashCode方法,有31这个数字? 选择系数的时候要选择尽量大的系数。因为如果计算出来的hash地址越大,所谓的 “冲突”就越少,查找起来效率也会提高。(减少冲突) 并且31只占用5bits,相乘造成数据溢出…
练习3
package top.qaqaq.java.P559; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; /** *…
package top.qaqaq.java.P558; import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; /** * @author RichieZhang * @create 2022-10-27 下午 9:48 */…
package top.qaqaq.java.P557; import org.junit.jupiter.api.Test; import java.util.*; /** * @author RichieZhang * @create 2022-10-27 下午 9:21 */ public class TreeMapTest { //向Tre…
package top.qaqaq.java.P548; import org.junit.jupiter.api.Test; import java.util.*; /** * |----Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y =f(x) * |----HashMap:作为Map的主要实现类;线程不安全的,效…
package top.qaqaq.java.P547; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.HashSet; import java.util.List; /** * @author RichieZhang * @creat…
package top.qaqaq.java.P546; /** * 定义一个 Employee 类。 * 该类包含:private 成员变量 name,age,birthday,其中 birthday 为MyDate 类的对象; * 并为每一个属性定义 getter, setter 方法; * 并重写 toString 方法输出 name, ag…
Collection子接口:Set接口 1. 存储的数据特点:无序的、不可重复的元素 2. 元素添加过程:(以HashSet为例) 我们向HashSet中添加元素a,首先调用元素a所在类的hashCode()方法,计算元素a的哈希值, 此哈希值接着通过某种算法计算出在HashSet底层数组中的存放位置(即为:索引位置),判断 数组此位置上是否已经有…
Collection子接口:List接口 5.存储的元素的要求: 添加的对象,所在的类要重写equals()方法
Iterator接口与foreach循环 1. 遍历Collection的两种方式: ① 使用迭代器Iterator ② foreach循环(或增强for循环) 2.2 作用:遍历集合Collection元素 2.3 如何获取实例:coll.iterator()返回一个迭代器实例 package top.qaqaq.java.P543; impor…
Collection接口 常用方法: add(Object obj),addAll(Collection coll),size(),isEmpty(),clear(); contains(Object obj),containsAll(Collection coll),remove(Object obj),removeAll(Collection …
1. 集合Collection中存储的如果是自定义类的对象,需要自定义类重写哪个方法?为什么? equals()方法。 contains()/remove()/retainsAll().... List:equals()方法 Set:(HashSet、LinkedHashSet为例):equals()、hashCode() (TreeSet为例):…