
Java集合
文章平均质量分 63
List,Set
新时代程序猿
不更新,代表被压榨着… 学习方向:测试开发+ 算法
展开
-
不会还不知道集合在算法刷题中,开发中如何选择?
集合在算法刷题中,实际开发中如何选择?选择什么集合实现类 主要取决于业务操作特点 然后根据集合实现类进行选择1)判断存储的类型(一组对象或一组键值对)2)一组对象:Collection接口允许重复 List增删多 :linkedList(底层维护了数据结构)查改多:ArrayList(底层维护Object类型的可变数组)不允许重复Set无需HashSet(底层是HashMap,维护了一个hashtable(数组+链表+红黑树))排序 TreeSet插入和取出顺序一致 LinkedHa原创 2021-07-29 16:42:23 · 101 阅读 · 0 评论 -
Properties文件源码硬核原理
Properties文件源码硬核原理根据韩顺平老师讲解做的笔记 有兴趣可以去B站搜“韩顺平”自我介绍1、Properties类继承子Hashtable 类并且实现了Map接口也是一种键值对的形式来保存数据2、他的使用特点和Hashtable类似3、Properties还可以从xxx.properties文件中,加载数据到Properties类对象并进行读取和修改4、说明 工作后xxx.properties文件筒仓作为配置文件实际使用中灵活高效 properties 用于数据库的连接db.原创 2021-07-28 16:31:34 · 359 阅读 · 0 评论 -
Hashtable源码介绍过程扩容
Map接口实现类——HashtableHashTable的基本介绍1)存放的元素键值对即k-V2)hashTable的键值对都不能为null3)hashTable使用方法基本上和HashMap一样4)hashTable是线程安全的 hashMap是线程不安全的5)简单看下底层结构简单说一下Hashtablerehash() 扩容1、底层是有一个数组 hashtable entry[] 第一次初始化大小是112、临界值是 8 约等于11*0.75 将entry里面的四个键值对原创 2021-07-28 13:41:16 · 205 阅读 · 0 评论 -
hashmap源码解读扩容变换关键代码
Map—HashMap源码解析(使用频率最高)根据韩顺平老师课做的笔记需要课程去B站收韩顺平HashMap小结1)Map接口的常用方法 HashMap HashTable 和Properties2)HashMap是Map接口使用频率最高的实现类3)HashMap是以key-val对的方式来存储数据 hashmapnode4)key不能重复 但是值可以重复允许使用null键和null值5)如果添加相同的key 则会覆盖原来的key -val 等同修改6)与HashSet一样不会保证映射的的原创 2021-07-27 21:18:11 · 161 阅读 · 0 评论 -
Map源码扩容机制特点接口三种遍历
Map接口有哪些特点在开发中使用的很多使用的是jdk8的接口的特点1)Map与Collection 并列存在 用于保存具有映射关系的数据 Key-Value2)Map中的key和value可以是任何引用类型数据 会封装到HashMapNode中对象中3)Map中的key不允许重复 原因和hashSet一样4)Map中的value 可以重复5)Map的key可以为null,value 也可以为null,注意key为null 只能有一个value为null 可以为null value也可以为nu原创 2021-07-26 20:45:49 · 155 阅读 · 0 评论 -
LinkedHashSet源码解读
LinkedHashSet1、在LinkedHashSet 中维护一个hash表的双向链表 LinkedHashSet有head和tail2、每一个节点有pre和next属性这样形成一个双向链表3、在添加一个元素先求hash值再求索引 确定该元素在hashtable的位置然后将添加的元素加入到双向链表中如果已经存在不添加tail.next = newElementnew,Element.pre=tailtail = newElement4、这样保证了 插入顺序和取出数据一致package原创 2021-07-23 15:39:18 · 341 阅读 · 0 评论 -
Set-HashSet源码解读
Set接口和常用方法Set接口得基本介绍1)无序(添加和去除得顺序不一致),没有索引2)不允许重复元素,所以最多包含一个null3)JDK API中set接口的实现类由//1、以hashset为接口Set的实现类讲解//2、set接口的对象(Set接口对象)不能存放重复的元素 可以添加一个null//3、set 接口对象存放对象数据是无序的 即添加的顺序和取出的顺序是不一致的//4、注意:取出的顺序的顺序虽然不是添加的顺序,但是是固定的set遍历package com.company.原创 2021-07-22 10:02:43 · 153 阅读 · 0 评论 -
JavaList源码解读(ArrayListLinkedListVector)
集合架构*注明:根据韩顺平老师做的笔记大致分为两类单列集合双列集合package com.company.Collection;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class javasourcedemo1 { public static void main(String[] args) { Collection原创 2021-07-19 16:08:17 · 183 阅读 · 0 评论