java集合
吴所谓_惧
这个作者很懒,什么都没留下…
展开
-
Map接口的常用问题总结
一、HashMap类 1、HashMap底层实现数据结构为数组+链表的形式,JDK8及其以后的版本中使用了数组+链表+红黑树实现。 2、HashMap的初始容量16,加载因子为0.75,扩容增量是原容量的1倍。 3、HashMap的长度为什么是2的幂次方? 我们将一个键值对插入HashMap中,通过将Key的hash值与length-1进行&运算, ...原创 2020-03-07 18:32:43 · 240 阅读 · 0 评论 -
Set接口常见问题总结
一、Set接口是无序、唯一的。 二、Set接口有三种重要的实现类,HashSet、LinkedHashSet、TreeSet。 三、HashSet类 1、底层数据结构是哈希表 2、无序、唯一(通过hashCode()和euqals()保证唯一性) 3、线程不安全 4、常用方法 增加 add(null); 删除...原创 2020-03-06 19:28:10 · 232 阅读 · 0 评论 -
List接口常见问题总结
一、List集合是有序、可重复的。 二、List集合有3种重要的实现类ArrayList、Vector、LinkedList类 三、ArrayList类(实现了Cloneable接口和Serializable接口) 1、底层是数组实现的 2、查询快,删减慢 3、线程不安全,效率高 4、常用方法 添加...原创 2020-03-06 17:37:00 · 339 阅读 · 0 评论 -
HashMap源码分析
分析之前需要知道的hashmap术语: 桶: 就是hashmap的table数组 bin: 就是挂在数组上的链表 TreeNode: 红黑树 capacity: table总容量(默认16) loadFactor:负载因子(默认0.75) threshold:键值对容量的上限 (threshold=capacity*loadFac...原创 2019-11-18 15:57:04 · 109 阅读 · 0 评论 -
LinkedList分析
注:来自网上资料,仅个人学习笔记用 1、LinkedList集合是基于双向循环链表实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。 2、LinkedList同样是非线程安全的,只在单线程下适合使用。 3、LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输 4、LinkedList实现了Cloneable接口,能被克隆。 5...原创 2019-10-26 12:46:47 · 178 阅读 · 0 评论 -
ArrayList源码分析
注:来自网上资料,仅个人学习笔记用 1、ArrayList集合是基于动态数组实现的,数组容量能自动增加。 2、ArrayList集合是线程不安全的,只能用于单线程环境下线程环境下考虑Collections.synchronizedList(List l)函数返回一个线程安 全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类。...原创 2019-10-26 12:16:44 · 94 阅读 · 0 评论 -
java集合结构
1、java集合包位于java.util下 2、集合框架大致可分为五大部分(List、Set)Collection、Map、工具类(Arrays、Collections)、迭代器(Iterator、Enumeration) 3、Collection接口被称为集合类的根接口,Map接口和Collection接口没有关系,相互独立 ...原创 2019-10-26 10:22:19 · 144 阅读 · 0 评论