E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Java集合源码
Java集合源码
剖析之ArrayList
Java集合源码
剖析之ArrayList1ArrayList概括1.1特性1.2数据结构2ArrayList源码剖析2.1继承关系2.2成员属性2.3构造方法2.4核心方法2.4.1添加元素2.4.2查询元素
JavaBigData1024
·
2024-02-07 02:25
源码阅读
Java
ArrayList
源码
Java集合源码
剖析-工具类
一.Collections工具类概述:1.Collections(注意不是Collection,而是Collections,多了一个s)2.它是一个集合工具类3.方法分类:常规操作(查找,最大,最小等)、排序、线程安全(同步)操作、不可变集合packagecom.cxy.collection;importjava.util.ArrayList;importjava.util.Arrays;impo
AHU_
·
2024-02-07 02:25
Java
集合类
Java集合源码解析
集合_Queue&Deque&LinkedList&ArrayDeque&PriorityQueue详解
1、Queue与Deque的区别1)引言:在研究
java集合源码
的时候,发现了一个很少用但是很有趣的点:Queue以及Deque;平常在写leetcode经常用LinkedList向上转型Deque作为栈或者队列使用
吹老师个人app编程教学
·
2024-01-31 06:59
java集合
java
【看看源码】一、ArrayList源码解析
前言:工作中涉及到并发编程,于是看了看
java集合源码
的各种实现,在这里记录下。
佩洛君
·
2024-01-10 15:10
Java源码阅读
java
包装类 和 初阶泛型(详解)
【本节目标】1.以能阅读
java集合源码
为目标学习泛型2.掌握包装类3.掌握泛型1.包装类在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了一个包装类型
手撕代码
·
2023-12-27 09:00
python
开发语言
Java集合源码
剖析
目录
Java集合源码
剖析ArrayListLinkedListHashMapHashTableConcurrentHashMap
Java集合源码
剖析ArrayList底层结构:ArrayList类是一个可以动态修改的数组
yang_zhen_wei
·
2023-11-20 03:51
java
Java集合源码
剖析-ArrayList源码剖析
一.概述ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下考虑Collections.synchronizedList(Listl)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类。ArrayList实现了Serializable接口
AHU_
·
2023-08-30 00:13
Java
集合类
Java集合源码解析
《撕烂
java集合源码
——List篇》
手撕
java集合源码
——List篇你知道的越多,你不知道的越多希望你看完这篇文章,当面试官的问你有没有手撕过源码,你可以自信的告诉他,不好意思,我把他撕烂了。
JAVA高级
·
2023-08-17 18:22
手撕
Java集合源码
——list集合
Java集合(一)——LinkedList和ArrayList源码一、集合集合主要分为两组(单列集合,双列集合)单列集合:存放单个元素Collection:两个重要的接口ListSetArrayListarrayList=newArrayListhashMap=newHashMaplist=newArrayListarrayList=newArrayListcollection=newArrayL
java小豪
·
2023-07-30 13:06
JavaEE
视频笔记
java
后端
java集合源码
分析(二):List与AbstractList
概述List应该接口是Collection最常被使用的接口了。其下的实现类皆为有序列表,其中主要分为Vector,ArrayList,LinkedList三个实现类,其中Vecotr又拥有子类Stack。从线程安全来说,List下拥有线程安全的集合类Vector;从数据结构来说,List下拥有基于数组实现的Vector与ArrayList,和基于链表实现的LinkedList。本篇文章暂不讨论具体
廖111
·
2023-03-11 12:36
Java集合源码
之遍历删除ArrayList元素的坑
先看需求,现有一个ArrayList,泛型是String,且内含有四个元素"a","b","b","c"。Listlist=newArrayList{intcursor;//indexofnextelementtoreturnintlastRet=-1;//indexoflastelementreturned;-1ifnosuchintexpectedModCount=modCount;Itr()
薛定谔的脑子
·
2023-02-05 07:24
Java集合源码
解析:TreeMap
本文概要二叉查找树的用处二叉查找树,以及二叉树带来的问题平衡二叉树的好处红黑树的定义以及构造红黑树在TreeMap的运用二叉树的好处可能许多人会有疑问,为什么要使用二叉树,有那么多的数据结构,比如数组、链表等简单看下数组和链表的优缺点数组优势:查找快,通过索引直接定位数据。时间复杂度O(1)劣势:删除和插入元素比较麻烦,需要移动的元素比较多。时间复杂度O(n)链表优势:删除和插入比较方便,直接修改
dk2077
·
2022-10-16 07:51
Java集合源码解析
Java集合源码解析
Java集合类
Java
TreeMap
红黑树
Java集合源码
之ArrayList
便于增强自己对集合的理解和记忆,准备出一系列
java集合源码
的阅读以及解析,本系列基于JDK1.8。
薛定谔的脑子
·
2022-02-17 14:03
Java集合源码
分析-HashMap和IdentityHashMap
HashMap基本是面试必问的数据结构了。理解了HashMap,IdentityHashMap就很简单了,所以主要介绍HashMap,文章最后对IdentityHashMap简单说明下就能理解的。HashMap底层数据结构是数组称之为哈希桶table,哈希桶的长度一定会是2的次方(这样在根据key的hash值寻找对应的哈希桶时,可以用位运算替代取余操作,更加高效),每个桶里面放的是链表(从源码中可
宛丘之上兮
·
2022-02-14 11:31
java集合【13】——— Stack源码分析走一波
前言集合源码分析系列:
Java集合源码
分析前面已经把Vector,ArrayList,LinkedList分析完了,本来是想开始Map这一块,但是看了下面这个接口设计框架图:整个接口框架关系如下(来自百度百科
·
2022-01-10 08:06
java源码
Java集合源码
分析之Map(六):LinkedHashMap
LinkedHashMap是HashMap的子类,所以也具备HashMap的诸多特性。不同的是,LinkedHashMap还维护了一个双向链表,以保证通过Iterator遍历时顺序与插入顺序一致。除此之外,它还支持AccessOrder,即按照元素被访问的顺序来排序,我们熟知的LRUCache底层就依赖于此。以下是文档中需要我们注意的点:Hashtableandlinkedlistimplemen
大大纸飞机
·
2021-06-22 02:03
Java集合源码
分析-TreeMap
成员变量:privatefinalComparatorcomparator;privatetransientEntryroot;privatetransientintsize=0;privatetransientintmodCount=0;privatetransientEntrySetentrySet;privatetransientKeySetnavigableKeySet;privatetr
宛丘之上兮
·
2021-06-13 22:51
Java集合源码
分析(十四):TreeMap
TreeMap是红黑树Java版的实现。如果还有小伙伴对红黑树还不是很了解的话,可以去之前的文章看一看。红黑树能保证对增删改查等基本操作的时间复杂度保持在O(lgN).接下来就让我们一起来看看TreeMap的底层源码。一、TreeMap继承结构从图中我们可以看到,TreeMap继承了父类AbstractMap类,也实现了Cloneable、NavigableMap还有Serializable接口。
不会编程的派大星
·
2021-05-20 17:17
Java集合源码
数据结构
java
集合
二叉树
源码
总结与规划
从今年的四月份开始,我就着手研究数据结构以及它们的Java实现,也就是JDK中的
Java集合源码
,以及基于这些数据结构的各种排序、查找等算法,到现在也算是收获颇丰。
大大纸飞机
·
2021-05-18 17:05
Java集合源码
分析(十三):sortedMap和NavigableMap
由于乱序的数据对查找不利,例如无法使用二分法等降低算法的时间复杂度,如果数据在插入时就排好序,查找的性能聚会提升很多。sortedMap接口就是为这种有序的数据服务的。一、sortedMap接口sortedMap接口需要数据的key支持Comparable,或者可以被指定的Comparator接受。sortedMap主要提供了以下方法://返回排序数据所用的ComparatorComparator
不会编程的派大星
·
2021-05-17 22:19
Java集合源码
算法
java
数据结构
集合
源码
Java集合源码
分析(十二):超级接口Map
我们在前面说到的无论是链表还是数组,都有自己的优缺点,数组查询速度很快而插入很慢,链表在插入时表现优秀但查询无力。哈希表则整合了数组与链表的优点,能在插入和查找等方面都有不错的速度。我们之后要分析的HashMap就是基于哈希表实现的,不过在JDK1.8中还引入了红黑树,其性能进一步提升了。今天我们来说一说超级接口Map。一、接口MapMap是基于Key-Value的数据格式,并且key值不能重复,
不会编程的派大星
·
2021-05-17 22:38
Java集合源码
链表
java
数据结构
源码
集合
Java集合源码
分析(十一):LinkedList
首先我们知道,LinkedList的底层实现是一个双向链表,链表与数组的差别我们更是清楚,所以LinkedList弥补了ArrayList增删较慢和效率较低的问题了,但是在改和查方面有逊色于ArrayList,所以在使用时要根据业务场景灵活选择。对于这两个使用最频繁的集合类,掌握他们的源码并正确使用,可以让我们的代码更高效。步入主题,LinkedList既实现了List,又实现了Deque接口,前
不会编程的派大星
·
2021-05-17 11:15
Java集合源码
java
队列
链表
数据结构
集合
Java集合源码
分析之基础(四):二叉排序树
解决查询速度慢的方案除了哈希表外,还可以使用二叉排序树。我们知道,查询慢主要是因为不知道元素的位置,使用hash函数映射虽然解决了问题,但其并不稳定,当出现大量的哈希碰撞后其表现更像一个链表,查询速度大大降低。二叉排序树的方案则是使元素有序,这样便可以使用二分法进行查找了,虽然效率相比hash函数低一些,但可以通过AVL树、红黑树等增加稳定性。HashMap在JDK1.8的实现中,就结合了哈希表的
大大纸飞机
·
2021-05-16 16:56
【
Java集合源码
剖析1.4】Stack源码剖析(API23)
Vector继承自Vector,Stack是栈。它的特性是:先进后出(FILO,FirstInLastOut)。它常用的API如下:booleanempty()synchronizedEpeek()synchronizedEpop()Epush(Eobject)synchronizedintsearch(Objecto)1.入栈操作publicEpush(Eitem){addElement(ite
MrLuo
·
2021-05-12 22:31
Java基础之ArrayList源码解析
Java集合源码
解析系列Java基础之HashMap源码解析Java基础之LinkedHashMap源码解析Java基础之HashTable源码解析Java基础之LinkedList源码解析HashSet
xxq2dream
·
2021-05-08 01:38
数据结构之树与二叉树
早在分析
Java集合源码
时,我们对树和二叉树就有了基本的了解,部分知识可以查看
Java集合源码
分析之基础(三):树与二叉树。本文在此基础上,介绍树和二叉树的存储、特性,以及部分知识的Java参考代码。
大大纸飞机
·
2021-04-21 22:21
Java集合源码
浅析
简介Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。Java中的集合类可以分为两大类:一类是实现Collection接口;另一类是实现Map接口Collection中的集合称为单列集合(单身狗),Map中的集合称为双列集合(情侣)。
帅大叔的简书
·
2021-04-15 01:39
java集合源码
分析(一):Collection 与 AbstractCollection
概述我们知道,java中容器分为Map集合和Collection集合,其中Collection中的又分为Queue,List,Set三大子接口。其下实现类与相关的实现类子类数量繁多。我们仅以最常使用的List接口的关系为例,简单的画图了解一下Collection接口List部分的关系图。1.81.pngList集合的实现类关系图根据上图的类关系图,我们研究一下源码中,类与类之间的关系,方法是如何从
廖111
·
2021-01-08 17:18
阿里P8大牛手写的源码笔记:Java集合+Java多线程+MyBatis+Spring
Java集合源码
笔记Java集合是我认为在Java基础中最最重要的知识点了,Java集合是必须掌握的。我在实习/秋招面试的时候,只要是面到Java,那一定是少不了Java集合。
JavaBUGa
·
2020-09-16 13:15
Java
面试
程序员
java
spring
面试
mybatis
多线程
java集合源码
解析:map
map里面用的最多的就是HashMap了,如果需要对key进行排序的话,会用到TreeMap先看看HashMap的源码HashMap内部还是用数组的方式实现的transientNode[]table;//Node的定义,除了key,value外,hash用来确定在数组中的位置.Node数组中每个元素其实是个链表(链表长度超过8则转为红黑树)结构,当有hash冲突时,这个链表中就会存放有相同hash
若_离
·
2020-09-14 17:22
JAVA源码分析
java集合源码
解析:collection
JAVA集合的框架图:从图中可以看出集合分为collection和map两大类,其中collection内部主要以数组或者链表的形式存放一系列集合对象,map则是以系列键值对的集合collection主要包含list和set两个部分,是list和set高度抽象出来的接口,主要包含add()remove()contains()等集合基本方法,还包含一个iterator()方法,依赖iterator接
若_离
·
2020-09-14 13:03
JAVA源码分析
Java集合源码
(ArrayList)-笔记
ArrayList初始化无参:默认大小为空数组,10是第一次扩容的大小指定大小指定初始数据:publicArrayList(Collectionc){//elementData是保存数组的容器,默认为nullelementData=c.toArray();//如果给定的集合(c)数据有值if((size=elementData.length)!=0){//c.toArraymight(incorr
Vince Lin
·
2020-09-12 20:28
后端
java
源码
Java集合源码
笔记:HashMap+List集合+Map集合+Collection+面试题
Java集合思维导图
Java集合源码
笔记笔记是全程手写出来的,希望大家拿到笔记后别丢进收藏夹吃灰!转发+关注,私信回复“大牛”获得免费领取方式。
Java技术剑
·
2020-09-12 18:24
Java
程序员
架构
java
编程语言
jdk
arraylist
Java集合源码
笔记:HashMap+List集合+Map集合+Collection+面试题
Java集合思维导图
Java集合源码
笔记笔记是全程手写出来的,希望大家拿到笔记后别丢进收藏夹吃灰!一、学习指南1、Java集合学习指南1.1学习一项技术之前,必须知道为什么要学它!
JavaBUGa
·
2020-09-12 18:36
Java
面试
程序员
java
编程语言
列表
jdk
经验分享
Java集合源码
实现五:HashSet(jdk1.8)
Java集合源码
实现五:HashSet(jdk1.8)
Java集合源码
实现五HashSetjdk18类继承关系什么是HashSetHashSet数据结构源码分析类继承实现成员变量主要方法构造方法添加元素删除元素类继承关系
零2一
·
2020-09-12 11:15
Java集合源码实现原理
Java集合源码
分析之基础(三):树与二叉树
数组和链表都是用来解决一对一问题的,而一对多问题则需要树来解决。这里,我们重点关注二叉排序树,所以只会介绍一些必需了解的概念,关于树的更多知识,大家可以查看相关书籍进行系统的学习。树的定义树(Tree)是n(n≥0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:1.有且仅有一个特定的称为根(Root)的结点;2.当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、……、Tm
大大纸飞机
·
2020-08-24 12:23
Java集合源码
分析之Map(四):TreeMap
TreeMap是红黑树的java实现,对红黑树不太了解的可以查阅这篇文章
Java集合源码
分析之基础(六):红黑树(RBTree)。红黑树能保证增、删、查等基本操作的时间复杂度为O(lgN)。
大大纸飞机
·
2020-08-22 20:01
Java集合源码
分析之基础(一):数组与链表
数组和链表是数据结构中最基本的部分,也是其余众多数据结构的基础。即使在Java中,这两种结构使用的也很普遍。这里我们会先对它们进行简要分析。数组在java中,数组定义为一种基本类型,其可以通过下标获取到对应位置的数据。那么这种结构的数据,在内存中是怎么存放的呢?数组的结构示意图正如上图所示,数组在内存中是一段连续的存储单元,每个数据依次放在每个单元中。分析这种结构,我们可以得出以下几个结论:创建一
大大纸飞机
·
2020-08-22 00:36
Java集合源码
分析之基础(二):哈希表
无论是数组还是链表,其对数据的查询表现都比较无力,要想知道一个元素是否在数组或链表中,只能从前向后挨个对比。出现这个问题的根源在于,我们没有办法直接根据一个元素找到它存储的位置,那有没有办法消除这个对比的过程呢?哈希表就是解决查询问题的一种方案。在后续将会分析的二叉排序树中,还会将数据排序以进行二分查找,将时间复杂度从O(n)降低到O(lgn)。哈希表与Hash函数通俗来讲,哈希表就是通过关键字来
大大纸飞机
·
2020-08-22 00:55
数据结构之线性表
部分知识已在
Java集合源码
分析之基础(一):数组与链表中阐述,这里不再赘述,本文是对这些概念的补充,以及给出可参考的Java代码实现。顺序存储顺序存储在大多数语言中定义为数组。
大大纸飞机
·
2020-08-21 17:54
【
Java集合源码
分析】关于Java集合你需要知道的是什么
前言Java集合估计是我们开发过程中,用的最多的API了,它位于java.util包下,同时支持多线程的集合类位于java.util.concurrent包下。我们都知道各种数据结构最底层的组成都是数组或者链表,其实各种集合类也是基于最基本的数据结构进行封装,便于各种场景直接使用。我们可以把集合想象成一个容器,它可以存储各种对象,扩展和封装了数组和链表,通过算法实现。有了这些认识,是不是集合也变了
少加点香菜
·
2020-08-18 10:38
Java集合
简单记录之
Java集合源码
解析(基于JDK1.8)
话不多说,先上图简单介绍Java集合可以分为两大类,一类是以Collection为根接口实现的,另一类就是以Map为根接口实现的,Collection是单列集合,就是元素是单一的值,而Map是双列集合,存储的元素是键值对。OK,下面就来分析MapHashMap数组+链表(红黑树)的存储结构扩容机制:数组的扩容是size大于阈值(容量x负载因子),数组扩容为原来的两倍,链表节点个数大于8转为红黑树关
G独角兽
·
2020-08-18 05:44
Java
Java集合源码
学习
Java集合工具包位于java.util包下,包含了很多数据结构。如数组、链表、栈、队列、集合、哈希表等。Java集合框架大致分为5个部分:List列表、Set集合、Map映射、迭代器(Iterator,Enumeration)、工具类(Arrays,Collections)Java集合类的整体框架如下:集合类可分为Collection和Map两大类。Collection又分为:1)List(有序
shijinghan1126
·
2020-08-15 03:20
Java
JAVA集合源码
解析——LinkedList
1.数据结构LinkedList的数据结构是一个双向链表结构,next指向下一个节点的地址,prev指向上一节点,element代表链表中的值;同时first节点中的prev和last节点的next为null。2.LinkedList类中的全局变量publicclassLinkedListextendsAbstractSequentialListimplementsList,Deque,Clone
wshouhan
·
2020-08-14 08:31
JAVA集合源码
解析——ArrayList
1.数据结构底层的数据结构就是数组,数组元素类型为Object类型,即可以存放所有类型数据。我们对ArrayList类的实例的所有的操作底层都是基于数组的。2.ArrayList中的全局变量publicclassArrayListextendsAbstractListimplementsList,RandomAccess,Cloneable,java.io.Serializable{/***版本号
wshouhan
·
2020-08-14 08:00
java集合源码
分析(二)---ListIterator与Iterator
吐槽早上起来刷牙洗脸洗头发后,正准备去上课,然后发现今天早上好像不上课emmmmmm,然后就早上继续看下java集合方面的源码了吼吼吼Iterator上次好像说过一点这个,然后继续复习下这个还是先看下官方文档然后我们发现这个东西就是个功能很少但很实用的迭代器,但是它也要注意一下几点:使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回
sakurakider
·
2020-08-10 00:30
java
【
Java集合源码
剖析】ArrayList源码剖析
转载请注明出处:http://blog.csdn.net/ns_code/article/details/35568011本篇博文参加了CSDN博文大赛,如果您觉得这篇博文不错,希望您能帮我投一票,谢谢!投票地址:http://vote.blog.csdn.net/Article/Details?articleid=35568011ArrayList简介ArrayList是基于数组实现的,是一个动
兰亭风雨
·
2020-08-03 20:52
Java集合源码剖析
Java集合源码剖析
Java集合源码
剖析——ArrayList源码剖析
点击上方“Java团长”,选择“置顶公众号”干货文章第一时间送达!ArrayList简介ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(Listl)函数返回一个线程安全的ArrayList类,也可以
fygu18
·
2020-08-03 12:52
20道
java集合源码
面试题,请笑纳
问题一:看到这个图,你会想到什么?答:这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类(子接口),这里的意思是指Map的KeySet获取到的一个视图是Collection的子接口。我们可以看到集合有两个基本接口:Map和Collection。但是我个人认为Map并不能说是一个集合,称之为映射或许更为合适,因为它的KeySet视图是一个Set类型
程序员麦冬
·
2020-08-03 01:06
面试文
python
java
编程语言
数据结构
hashmap
java集合源码
解读---Queu和Stack的数组和链式实现
栈和队列所谓的栈,是一个含有至少两个基本操作的抽象数据类型:插入新的元素;删除最近时间插入的元素。遵循FILO(Firstin,lastout,先进后出)的原则。所谓的队列,也是一个含有至少两个基本操作的抽象数据类型:插入新的元素;删除最久时间插入的元素。遵循FIFO(Firstin,firstout,先进先出)的原则。关于栈和队列的具体实现,我们即可以借助于数组,也可以采用链表来实现。1)栈的数
hungry_bug
·
2020-08-03 00:10
数据结构
上一页
1
2
3
4
5
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他