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容器
接口Set源码分析
目录简介查询操作size,isEmpty,contains返回元素Iterator,toArray两个修改add,remove批量操作containsAll,addAll,removeAll,retainAll,clear其余equals,hashCode,spliterator简介/***一个包含不重复元素的集合。*更正式地说,set不包含这样的元素对,e1和e2,e1.equals(e2),并
xushiyu1996818
·
2020-09-14 16:58
java容器
源码分析
java容器
抽象类AbstractSequentialList源码分析
目录简介构造器基于下标的方法get,set,add,remove块操作addAll(int,Collection)迭代器Iterator和ListIterator简介/***这个类提供了List接口的骨架似的实现,来最小化实现基于顺序访问元素(例如链表)的努力。*对于随机访问元素(例如一个数组),应该优先使用abstractList。**这个类与AbstractList相反,它实现了随机访问的方法
xushiyu1996818
·
2020-09-14 16:58
源码分析
java容器
java容器
抽象类AbstractList源码分析
目录简介构造器基于index的方法-两个add,get,remove,set查找元素-indexOf,lastIndexOf块操作-addAll,clear辅助操作-removeRange,rangeCheckForAdd,outOfBoundsMsg字段-modCount比较和哈希-equals,hashCode迭代器-Iterator,ListIterator,对应的两个内部类Itr,List
xushiyu1996818
·
2020-09-14 16:58
源码分析
java容器
java容器
接口Queue源码分析
目录简介插入add,offer删除头部元素remove,poll返回头部元素elementpeek简介/***用于在处理元素前保存元素的集合。*除了基本的Collection类的操作,queue提供了额外的插入,抽取和检查的操作。*它们的每个方法存在两个形式:如果操作失败,抛出异常。另个一个返回特殊值(null或者false,取决于操作)。*后一种形式的插入操作专门用于容量受限的Queue实现。*
xushiyu1996818
·
2020-09-14 16:58
java容器
源码分析
CS技术体系
:55categories:书单tags:top:文章目录1.CS基础操作系统理论,Linux内核计算机网络TCP/IP,Http,SSL数据结构与算法理论设计模式编程范式2.JavaSEJava基础
Java
h2linlin
·
2020-09-14 16:36
书单
java容器
:17、怎么确保一个集合不能被修改?
怎么确保一个集合不能被修改?目前查到有两种方法:(1)通过Collections.unmodifiableCollection(Collectionc)(2)通过Arrays.asList创建的集合代码如下:(原因分析以后再分析)(1)通过Collections.unmodifiableCollection(Collectionc)Listlist=newArrayList();list.add(
JAVA小摩托不堵车
·
2020-09-14 16:38
面试:容器
java
数据结构
java容器
:8、ArrayList和LinkedList的区别是什么?
超详细分析请见以下链接:
java容器
——List接口(代码模拟ArrayList和LinkedList类的底层实现)
JAVA小摩托不堵车
·
2020-09-14 16:06
面试:容器
java
面试
Java容器
系列——(一)概览以及容器中使用的设计模式
(一)、概览容器主要分为Collection和Map两种,Collection主要用于存储对象的集合,而Map主要存储着键值对的映射表-Collection1.SetTreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不如HashSet,HashSet查找的时间复杂度为O(1),TreeSet则为O(logN)。HashSet:基于哈希表实现,支持快速查找,
XHHP
·
2020-09-14 16:10
Java基础
Java容器
源码(四)——LinkedList源码分析(基于JDK8)
文章目录(一)、概述(二)、重要的内部类(三)、类名(四)、属性(五)、构造方法(六)、add()方法(七)、remove()方法(八)、get()方法和peek()方法(九)、其他方法更多
Java容器
源码分析可以参考
XHHP
·
2020-09-14 16:09
Java基础
Java容器
源码(五)——HashMap源码分析(基于JDK8)
tableSizeFor方法(七)、hash方法(八)、putMapEntries方法以及putVal方法(九)、resize方法(十)、remove方法(十一)、clear方法(十二)、containsValue方法更多
Java
XHHP
·
2020-09-14 16:09
Java基础
HashMap
HashMap源码分析
源码分析
JDK8
Java容器
Java容器
源码面试知识点汇总(超详细!)
Java容器
源码(一)——ArrayList源码分析(基于JDK8)
Java容器
源码(二)——Vector源码分析(基于JDK8)
Java容器
源码(三)——CopyOnWriteArrayList源码分析
XHHP
·
2020-09-14 16:38
Java基础
Java容器
源码(七)——HashTable源码分析(基于JDK8)
文章目录(一)、概述(二)、类名(三)、成员变量(四)、构造方法(四)、rehash方法(五)、addEntry方法(六)、put方法(七)、remove方法更多
Java容器
源码分析可以参考:
Java容器
源码分析系列
XHHP
·
2020-09-14 16:37
Java基础
Java容器
源码(二)——Vector源码分析(基于JDK8)
文章目录(一)、Vector概述(二)、Vector源码解析(三)、ArrayList与Vector更多
Java容器
源码分析可以参考:
Java容器
源码分析系列(持续更新中!)
XHHP
·
2020-09-14 16:37
Java基础
Java容器源码
Vector源码分析
Java容器
源码(六)——HashSet源码分析(基于JDK8)
文章目录(一)、概述(二)、类名(三)、成员变量(四)、构造方法(五)、add方法(六)、remove方法(七)、hashCode()与equals()更多
Java容器
源码分析可以参考:
Java容器
源码分析系列
XHHP
·
2020-09-14 16:37
Java基础
Java容器
源码(三)——CopyOnWriteArrayList源码分析(基于JDK8)
文章目录(一)、概述(二)、适用场景(二)、类名(三)、成员变量(四)、构造方法(五)、set方法(六)、add方法(七)、remove方法(八)、addIfAbsent方法更多
Java容器
源码分析可以参考
XHHP
·
2020-09-14 16:37
Java基础
Java知识点总结(
Java容器
-HashSet)
Java知识点总结(
Java容器
-HashSet)@(Java知识点总结)[Java,
Java容器
,JavaCollection,JavaSet]HashSet特点HashSet按Hash算法来存取查找集合中的元素
weixin_33772645
·
2020-09-14 16:11
java容器
源码分析(一)——开篇
先来复习下
java容器
方面的。
weixin_33693070
·
2020-09-14 16:05
Java容器
——Set接口
1.定义set中不允许放入重复的元素(元素相同时只取一个)。它使用equals()方法进行比较,如果返回true,两个对象的HashCode值也应该相等。2.方法TreeSet中常用的方法:booleanadd(Ee):添加一个元素,如果set中不存在该元素booleanaddAll(Collectionc):向set添加集合Eceiling(Ee):返回大于等于给定元素的最小元素,没有返回nul
weixin_30545285
·
2020-09-14 16:09
Java容器
Set接口
Set接口的实现,可以方便地将指定的类型以集合类型保存在一个变量中。Set是一个不包含重复元素的Collection,更确切地讲,Set不包含满足e1.equals(e2)的元素对,并且最多包含一个null元素。Set接口的底层存储实现都是依赖Map的实现,也可以说Set中元素的管理就是对Map中key的管理。下面简单描述一下各种Set接口的实现类,主要包括HashSet,LinkedHashSe
weixin_30412577
·
2020-09-14 16:33
Java容器
学习笔记(二) Set接口及其实现类的相关知识总结
在
Java容器
学习笔记(一)中概述了Collection的基本概念及接口实现,并且总结了它的一个重要子接口List及其子类的实现和用法。
涛涛_2009
·
2020-09-14 15:25
实习笔记
Java
Java容器
的源码分析
目录ArrayListVectorCopyOnWriteArrayListLinkedListHashMApConCurrentHashMapLinkedHashMapWeakHashMapConcurrentCache基于JDK1.8ArrayListpublicclassArrayListextendsAbstractListimplementsList,RandomAccess,Clonea
trytrylmt
·
2020-09-14 15:25
Java
你必须知道的几种
java容器
(集合类)
一、基本概念
Java容器
类类库的用途是“持有对象”,并将其划分为两个不同的概念:1)Collection:一个独立元素的序列,这些元素都服从一条或者多条规则。
Xeon-Shao
·
2020-09-14 15:15
JavaSE
编程语言
面试笔试相关
Java容器
:(三)LinkedList 的特点_链表_使用方法
LinkedList的特点_链表1.LinkedList的特点2.链表单项链表双向链表3.LinkedList使用方法1.创建集合对象2.添加元素3.添加元素到头部4.添加元素到尾部5.删除头部元素6.删除尾部元素7.整合代码4.遍历LinkedList1.LinkedList的特点双向链表。链表中的每个节点都包含了对前一个和后一个元素的引用。List接口的大小可变数组的实现,位于API文档的ja
地球村公民
·
2020-09-14 15:19
Java基础深化与提高
java
链表
Java容器
类源码-Vector的最全的源码分析(四)
(31)publicsynchronizedbooleanretainAll(Collectionc)源码解释:将数组中不是c中包含的元素全部移除。调用AbstractCollection的实现,代码也很简单,不赘叙。publicsynchronizedbooleanretainAll(Collectionc){returnsuper.retainAll(c);}publicbooleanreta
Java搬砖师
·
2020-09-14 15:32
Java容器
类源码-Vector的最全的源码分析(三)
(16)publicsynchronizedvoidremoveElementAt(intindex)源码解释:获取到index位置后有多少个元素,并将index位置后面的元素复制到index位置前的后面,再将index位置置空。复制操作通过JNI实现。publicsynchronizedvoidremoveElementAt(intindex){modCount++;if(index>=elem
Java搬砖师
·
2020-09-14 15:31
Java容器
类源码-Vector的最全的源码分析(二)
三、源码解读1.继承、实现extends:AbstractListimplements:List,RandomAccess,Cloneable,java.io.Serializable2.全局变量(1)存放数据的数组protectedObject[]elementData;(2)存放数量protectedintelementCount;(3)容量增量protectedintcapacityIncr
Java搬砖师
·
2020-09-14 15:31
java
容器
vector
Java容器
之HashSet
一.HashSet的类关系图二.HashSet简介HashSet是Set接口的典型实现,大多数时候使用Set集合时就是使用这个实现类.HashSet按Hash算法(实际上HsahSet没有自己实现存储,而是调用的HashMap的实现)来存储集合中的元素.HashSet无序HashSet不能保证元素的排列顺序,顺序可能与添加的顺序不同,顺序也有可能发生变化.线程不安全HashSet不是线程同步的,如
TheBiggestMouse
·
2020-09-14 15:40
面试
容器
java容器
类:LinkedList
ArrayList随机访问效率很高,但插入和删除性能比较低,我们提到了同样实现了List接口的LinkedList,它的特点与ArrayList几乎正好相反,本节我们就来详细介绍LinkedList。实现原理内部组成我们知道,ArrayList内部是数组,元素在内存是连续存放的,但LinkedList不是。LinkedList直译就是链表,确切的说,它的内部实现是双向链表,每个元素在内存都是单独存
lzz0729
·
2020-09-14 14:13
java基础
Java容器
——HashMap(Java8)源码解析(一)
一概述HashMap是最常用的Java数据结构之一,是一个具有常数级别的存取速率的高效容器。相对于List,Set等,结构相对复杂,本篇我们先对HashMap的做一个基本说明,对组成元素和构造方法进行介绍。二继承关系首先看HashMap的继承关系,比较简单,实现了Map和序列化等。图1HashMap继承关系图HashMap继承自Map,Map作为一个重要的接口,很有必要需要介绍一下。图2Map接口
qisong3
·
2020-09-14 14:15
Java
容器
JAVA容器
——Stack(JAVA8) 源码解析
一栈简介栈是一种常用的线性抽象数据结构,在计算机中应用极为广泛。栈有两个为人熟知的特性,一是进出栈的顺序是先进后出(FILO),即最先进栈的数据最后出栈,当然相对的也有后进先出(LIFO),最后进栈的数据先出栈。另一个是支持两个通用操作:Push:将元素推进栈;Pull:从栈中取出数据。栈的操作演示见下图,这里需要注意的是1的位置对应的是栈底,后面再Push的元素所在位置为栈顶,所有对栈的操作,都
qisong3
·
2020-09-14 14:15
Java
容器
Java容器
——HashSet(Java8)源码解析
HashSet是一种元素集合,实现了Set接口,是一种快速的,去重的集合对象,继承关系见图1所示。图1HashSet继承关系图HashSet继承自Set接口,继承Set的还包括TreeSet,SortedSet等,他们都有一个基本的标准的特征,不包含重复的元素。HashSet从名称上容易看出,这是通过Hash来实现的元素去重以及对元素的各种快速操作。HashSet是如何做到的呢?从成员变量和构造函
qisong3
·
2020-09-14 14:15
Java
Java容器
——LinkedList(Java8 )源码解析
LinkedList继承自List,是一种常用的容器。虽然同为ArrayList和LinkedList同为List,但二者的实现方式完全不同,导致二者的性能和使用场景都有较大的不同,本文将从源码角度解析LinkedList。LinkedList的类图关系如上图所示。简而言之,LinkedList是实现了可复制,可序列化的一种双向链表。虽然它同时实现了List和Deque接口,从内在基因上个人更倾向
qisong3
·
2020-09-14 14:15
Java
容器
Java容器
——HashMap(Java8)源码解析(二)
在前文中介绍了HashMap中的重要元素,现在万事俱备,需要刨根问底看看实现了。HashMap的增删改查,都离不开元素查找。查找分两部分,一是确定元素在table中的下标,二是确定以指定下标元素为首的具体位置。可以抽象理解为二维数组,第一个通过哈希函数得来,第二个下标则是链表或红黑树来得到,下面分别来说。一哈希函数说到HashMap,最值得引起注意的自然是接近常数级别的操作速度,大家也都知道是利用
qisong3
·
2020-09-14 14:15
Java
容器
Java容器
类浅析三-----保证插入顺序的HashMap--LinkedHashMap的存取原理
上一节我们说到HashMap的存取原理,并一步步地分析了其主要的成员变量、构造函数以及体现其算法的put,get方法。本文将继续分析HashMap的子类—LindedHashMap,来解决上一节提到的,如何保证迭代顺序和插入顺序的一致性的问题。一、概述publicclassLinkedHashMapextendsHashMapimplementsMapLinkedHashMap直接继承于HashM
忙里偷闲得几回
·
2020-09-14 14:57
源码分析
Java8源码-详解fail-fast
细心地朋友看
Java容器
源码时一定会发现在list()和listIterator()的注释中都有一句话:Theiteratorsreturnedbythisclass’siteratorandlistIteratormethodsarefail-fast
潘威威
·
2020-09-14 14:57
Java8容器
Java8容器源码札记
java容器
之ArrayList源码解析(jdk8)
ArrayList简介ArrayList是按照插入顺序来保存元素的(包含null),可以利用下标来查找值。它的优点是按照下标访问元素的速度非常快,它的缺点是元素插入和删除的速度非常慢,添加n个元素需要O(n)时间,ArrayList是非线程同步的。源码解析成员变量/***Defaultinitialcapacity.*默认初始容量。*/privatestaticfinalintDEFAULT_CA
pinchaozhao
·
2020-09-14 14:40
ArrayList
源码解析
java8
java进阶
Java容器
学习--ArrayList源码分析
ArrayList内部采用数组实现,是一种顺序存储方式,并且支持随机访问。本文分析基于JDK1.8.0_151版本。publicclassArrayListextendsAbstractListimplementsList,RandomAccess,Cloneable,java.io.Serializable{}ArrayList继承于AbstractList并且实现了List,RandomAcc
N3verL4nd
·
2020-09-14 14:16
JAVA
Java学习笔记
java
java容器
系列三(TreeMap和TreeSet详解)
一,TreeMap详解参考博文http://www.cnblogs.com/CarpenterLee/p/5503882.html1,红黑树详解红黑树是满足如下条件的二叉查找树(1)每个节点要么是黑色,要么是红色(2)根节点必须是黑色(3)红色节点不能连续(即红色节点的父节点和字节点必须是黑色)(4)对于每个节点,从该点至null(树尾端)的任何路径,都含有相同个数的黑色节点。在树的结构发生改变时
净心斋主
·
2020-09-14 14:35
java容器系列
Java容器
(二):强大的LinkedList
一、强大的LinkedListLinkedList是一个双向链表,而ArrayList是一个动态数组,这就造成了LinkedList不能够随机访问,查询时会遍历整个链表,因此在get和set时,不如ArrayList高效,但是在add和remove时,LinkedList则比较占优势(当然对于在list的最后增加或删除,两种List都一样)LinkedList很强大,它有一系列特定的方法,使得它可
JeffCoding
·
2020-09-14 14:58
Java基础
Java系列教程
java容器
类---HashMap、HashSet
1.HashMap简介1.1HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表:链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希表:
HLA_胡
·
2020-09-14 14:39
JAVA基础
java容器类
hashmap
原理
java容器
类---TreeMap、TreeSet
1、TreeMap简介TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,关于二叉排序树,红黑树通过一些限制,使其不会出现二叉树排序树中极端的一边倒的情况,相对二叉排序树而言,这自然提高了查询的效率。红黑树的基本性质如下:1、每个节点都只能是红色或者黑色2、根节点是黑色3、每个叶节点(NULL节点,空节点)是黑色的。4、如果一个结点是红的,则它两个子节点都
HLA_胡
·
2020-09-14 14:08
JAVA基础
java容器类
Java容器
源码分析—List
List概述ArrayList1、ArrayList概览2、扩容方法3、元素的删除4、Fail-Fast5、Fail-Safe6、序列化Vector1、同步2、扩容3、CopyOnWriteArrayList类3.1读写分离3.2适用场景LinkedList1、概览2、LinkedList数据结构3、删除4、与ArrayList相比ArrayList,LinkedList和Vector面试题1、V
to_be_better_one
·
2020-09-14 14:13
Java基础知识
Java容器源码学习
Java容器
之各种Set
原文转自我自己的个人公众号:https://mp.weixin.qq.com/s/M6Qwe24Lv3Bl02dNAObgQA由于我是从公众号上直接复制粘贴过来的,排版上可能有问题。推荐使用上方连接查看原文。目录:Set简介HashSet简介打破Set中元素不可重复的约束构造方法新增、删除和遍历方法LinkedHashSetTreeSet总结1.Set简介首先我们来对比下Set接口的方法:通过上图
genie2014
·
2020-09-14 14:12
Java
java
Java容器
之LinkedHashMap源码解析(视频讲解)
内容简介:讲解LinkedHashMap的源码和数据结构。分析其性能及影响性能的因素。从性能和数据结构方面对比HashMap。LinkedHashMap使用了双向链表,因此和LinkedList进行了相关对比讲解,在LinkedList的专题讲解中,提出尽量避免使用LinkedList,因此对LinkedHashMap也进行了相关讨论。得出可以广泛使用LinkedHashMap的结论。视频地址:h
genie2014
·
2020-09-14 14:11
Java
java
hashmap
编程语言
链表
数据结构
Java容器
之LinkedList源码解析(视频讲解)
内容简介:解析LinkedList的数据结构,以及“增删改查”相关方法的源码实现。与ArrayList进行对比,并对ArrayList和LinkedList的性能和适用场景进行分析。网上几乎所有的对比ArrayList和LinkedList的文章几乎千篇一律,论点基本相同,也都使用了时间复杂度(Big-O)来定性的对比两者。但在两种不同的数据结构中使用时间复杂度是不可行的,因此这些文章的结论基本都
genie2014
·
2020-09-14 14:11
Java
java
linkedlist
面试
arraylist
Java集合框架源码分析 - Iterable
上一篇文章我们讲了
Java容器
的概况包括Collection和Map框架,Collection最顶上的接口是java.lang.Iterable,Collection里的其他类和接口都是在java.util
feigeswjtu
·
2020-09-14 13:52
Java
Java容器
之LinkedList
1.定义实现List接口与Deque接口双向链表,实现了列表的所有操作,并且允许包括null值的所有元素,对于LinkedList定义我产生了如下疑问:1.Deque接口是什么,定义了一个怎样的规范?2.LinkedList是双向链表,其底层实现是怎样的,具体包含哪些操作?下文将围绕这两个问题进行,去探寻LinkedList内部的奥秘,以下源码是基于JDK1.7.0_792.结构2.1类结构Lin
dongbad
·
2020-09-14 13:06
Java
编程语言
java
linkedList
list
Collection 类关系图
JavaCollectionsFramework(JCF)*为Java开发者提供了通用的容器,其始于JDK1.2,优点是:降低编程难度提高程序性能提高API间的互操作性降低学习难度降低设计和实现相关API的难度增加程序的重用性
Java
没对象?new一个啊
·
2020-09-14 13:44
Java
集合框架
[
Java容器
] 迭代器(Iterable+Iterator+ListIterator+Enumeration)详解
目录一、Iterable(Java集合框架中顶级接口)二、Enumeration(远古时期迭代器)三、Iterator(迭代器)四、ListIterator(加强版迭代器)五、Iterator和ListIterator区别一、Iterable(Java集合框架中顶级接口)Iterable接口:(java.lang.Iterable)是Java集合的顶级接口之一。Collection接口继承Iter
华Zia
·
2020-09-14 13:28
Java集合
Java
java容器
源码--hashmap源码解读
趁着过年有时间,把java集合中常见的几个集合的源码都稍微读了一下,写一点自己的浅见吧。以下均基于macosx,jdk1.8,ide为InteliJidea14.1、总体分析hashmap在日常开发中使用的比较多,先hashmap的继承关系。可以看出hashmap继承抽象类AbstractMap,实现了Cloneable,Serializable,Map接口。Cloneable,Serializa
zclzhangcl
·
2020-09-14 13:59
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
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
其他