什么是散列表:
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫
做散列函数,存放记录的数组叫做散列表。
散列表是查询效率最高的(底层是数组 )
加载因子 :
默认0.75 加载因子=实际保存数量/总容量当散列表中保存元素数量超过加载因子对应的最大数量 时,散列表会进行扩容,每次扩 容为原来的2倍
应用:HashMap保存数据过程
相关面试题
==和equals的区别
== 两侧若为基本数据类型,则进行数值比较;若两侧为引用类型,则比较地址
equals: 是Object提供的方法,在Object类中,其作用等同于==,用于比较对象的地址是否相等;Java强烈建议在子类中重写该方法,使其具有实际的逻辑意义.
问题1:若两个对象调用hashcode方法生成的整数相同,两个对象equals的结果一定为true吗?
不一定
问题2: 两个对象的euqals结果为true,分别调用hashcode方法生成的整数一定相同吗?
一定相同
HashMap,HashTable,ConcurrentHashMap的区别
1. HashMap是非线程安全的,HashTable和ConcurrentHashMap都是线程安全的 2. 非线程安全的散列表的key和value均可以为nu