- 博客(7)
- 收藏
- 关注
原创 HashSet的底层原理
在jdk7之前,哈希表采用数组+链表 实现插入元素时,会根据hashCode()方法计算出哈希值,确定其在哈希表的位置,如果该位置为空,则直接插入,如果不为空,则需要将元素与链表中的所有元素逐一比较(调用equals方法),看看是否存在,如果不存在,则将其添加到该链中,如果存在将不再重复添加。jdk8开始,通过数组+链表+红黑树方式实现。当此链表元素超过8个时,会将该链表转换成红黑树进行存储,目的在于减少比较次数,提高性能。 哈希数组默认长度为16HashSet总结底层原理:Hash
2021-06-25 23:18:17 577 1
原创 HashSet特点
存储的元素是无序不重复的底层结构是哈希表,具有良好的存储和查找性能HashSet集合没有索引,只能通过迭代器和for增强循环遍历集合哈希表常用数组实现,元素根据哈希值计算在哈希表中的存储位置。如果元素出现哈希冲突(在哈希表存储的位置一样),那么会采用链表挂在元素。哈希值哈希值代表对象的某种特征,通常使用int整数表示。Object类中提供hashCode()方法,可以根据内存地址计算出哈希值。由于每个对象的地址不一样,对应的哈希值也不一样。Java类可以重写hashC
2021-06-25 23:02:57 781
原创 Set集合概述和特点
概述:Set接口和List接口一样,都继承了Collection接口,所以Collection接口中的方法Set集合都能使用。 Set接口下常用的实现类有HashSet、LinkedHashSet、TreeSet等。Set集合的特点:无序:元素存入和取出的顺序无法保证统一。不可重复:重复的元素不会被存入。无索引:集合中没有索引,无法通过索引操作元素。(用for增强循环和iterator迭代器遍历)...
2021-06-25 22:48:05 210
原创 请问有几种代码块,分别是什么,作用是什么?
三种静态代码块:使用this修饰,类被加载到内存时会被执行一次,且只执行一次,适用于项目中仅需一次的执行构造代码块:每次创建对象时都会执行,用来初始化对象。
2021-06-19 22:17:56 294
原创 抽象方法能否被private、static、final关键字修饰?
不可以,抽象方法存在的目的就是被子类重写,而private的方法是不能被子类重写的,所以不能修饰不可以,抽象方法存在的目的就是被子类重写,而的方法是不能被子类重写的,所以不能修饰不可以,抽象方法存在的目的就是被子类重写,而private的方法是不能被子类重写的,所以不能修饰...
2021-06-18 23:43:35 2472 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人