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接口及其实现类的相关知识总结
在
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
java容器
和基础类源码分析总结
目录源码分析说明基础类和接口源码分析基本类基本接口函数式接口工具类
java容器
关系图Collection的子类源码分析CollectionListQueueSetMap的子类源码分析旧的容器类源码分析说明本次源码分析基本是基于
xushiyu1996818
·
2020-09-14 13:20
总结
java容器
java
java容器
类TreeSet源码分析
目录简介字段m,PRESENT构造函数5个iterator,descendingIterator,descendingSetsize,isEmpty,contains,add,remove,clear,addAllsubSet,headSet,tailSet,各2个,comparator,first,lastlower,floor,ceiling,highter,pollFirst,pollLas
xushiyu1996818
·
2020-09-14 13:20
源码分析
java容器
java容器
类HashSet源码分析
目录简介字段map,PRESENT构造函数5个查询iterator,size,isEmpty,contains操作add,remove,clearclone,readObject,writeObjectspliterator简介/***这个类实现Set接口,由一个散列表(实际上是一个HashMap实例)支持。*它不保证集合的迭代顺序;特别是,它不能保证顺序保持不变。该类允许null元素。**这个类
xushiyu1996818
·
2020-09-14 13:20
源码分析
java容器
源码-
Java容器
-1.总体认识
title:源码-
Java容器
-1.总体认识date:2019-08-1500:37:25categories:JavaSE
Java容器
tags:
Java容器
top:
Java容器
部分所有的内容都是基于Java1.8
h2linlin
·
2020-09-14 13:13
JavaSE
Java容器
_Set_HashSet源码分析
Set接口是上文介绍的容器的第四个接口,也是最后一个接口,也是实现起来最容易的接口。(1)Set接口是Collection接口的子接口,Set接口没有提供额外的方法;(2)Set接口的特性是容器类中的元素是没有顺序的,而且不可以重复;(3)Set容器可以与数学中“集合”的概念相对应;(4)JDKAPI中所提供的Set容器类有HashSet,TreeSet等。打开Set接口的源码:publicint
widenstage
·
2020-09-14 13:37
java
容器
java
set
hashset
源码
Java基础:
Java容器
之LinkedList
定义实现List接口与Deque接口双向链表,实现了列表的所有操作,并且允许包括null值的所有元素,对于LinkedList定义我产生了如下疑问:1.Deque接口是什么,定义了一个怎样的规范?2.LinkedList是双向链表,其底层实现是怎样的,具体包含哪些操作?下文将围绕这两个问题进行,去探寻LinkedList内部的奥秘,以下源码是基于JDK1.7.0_79。结构类结构LinkedLis
郑能量TuT
·
2020-09-14 13:21
java汇总
java
Java容器
之源码分析(面试必备!)
(1)、概览以及容器中使用的设计模式:
Java容器
系列——(一)概览以及容器中使用的设计模式(2)、ArrayList源码分析:
Java容器
源码(一)——ArrayList(基于JDK8)(3)、Vector
XHHP
·
2020-09-14 12:43
Java基础
Java容器
源码分析-HashSet vs TreeSet vs LinkedHashSet
2019独角兽企业重金招聘Python工程师标准>>>这几天看了下容器的源码,总结一下HashSetvsTreeSetvsLinkedHashSet的区别,如下图,collection的继承实现分支,这里先只讲解set分支1、HashSetvsTreeSetvsLinkedHashSet三者的数据结构分析(1)HashSet:由哈希表(实际上是一个HashMap实例)支持。它不保证set的迭代顺序
weixin_34244102
·
2020-09-14 12:34
java
python
数据结构与算法
Java容器
类源码分析之Iterator与ListIterator迭代器(基于JDK8)
一、基本概念迭代器是一个对象,也是一种设计模式,Java有两个用来实实现迭代器的接口,分别是Iterator接口和继承自Iterator的ListIterator接口。实现迭代器接口的类的对象有遍历集合对象,选择集合中的元素和删除集合中元素的方法。而在使用它时不必知道该集合对象底层的结构。Java类库中实现Iterator接口的迭代器只能正向遍历集合中的元素,而实现ListIterator接口的迭
weixin_34034670
·
2020-09-14 12:30
java源码分析之HashSet
http://blog.csdn.net/jzhf2012/article/details/8540696
Java容器
类的用途是“保存对象”,分为两类:Map——存储“键值对”组成的对象;Collection
weixin_30530523
·
2020-09-14 12:20
java
java容器
源码分析--HashSet(JDK1.8)
HashSet的实现是基于HashMap的,在了解过HashMap的源码(
java容器
源码分析–HashMap(JDK1.8))后,再看HashSet的源码,会简单很多,所以本文也会简短很多。
w1992wishes
·
2020-09-14 12:15
Java
java容器
源码分析--LinkedList(JDK1.8)
本篇结构:前言数据结构重要参数常用方法源码分析疑问解答分析总结一、前言ArrayList和LinkedList都是很常用的容器,它们适合不同的场景。对于随机访问和设置频繁的场景,应该选用ArrayList,因为ArrayList是基于一个动态数组的容器;而对于插入和删除频繁的场景,应该选用LinkedList,ArrayList插入和删除都需要复制数组,会消耗一定的性能,LinkedList则没有
w1992wishes
·
2020-09-14 12:15
Java
Java容器
类源码-Vector的最全的源码分析(一)
一、概述我们都知道,在Java的Collections包含了List和Set,而List里面有ArrayList、LinkedList、还有Vector,对于很多Java初学者来说,前面两个比较常用,ArrayList查询效率比较高(底层是数组实现),而LinkedList的增删效率比较高(底层是双向链表实现)。那么Vector是什么呢?它和ArrayList、LinkedList一样,支持有序可
Java搬砖师
·
2020-09-14 12:12
死磕
Java容器
—HashSet
深入了解HashSet。环境eclipse2019-03(4.11.0)jdk-12.0.1eclipse中查看源码的方法:按住Ctrl键,鼠标左键单击代码(更详细请百度)。容器:在Java中,“集合”有另外的用途,所以ArrayList、HashMap等皆称为容器类,其创建的一个对象就是一个容器。简介HashSet是接口Set的一个实现类,故继承了Set的重要特性“不接受重复元素”,HashSe
黯叶
·
2020-09-14 12:09
死磕源码
Java容器
系列-HashMap源码分析
HashMap实现了Map接口。HashMap使用的很广泛,但不是线程安全的,如果在多线程中使用,必须需要额外提供同步机制(多线程情况下推荐使用ConCurrentHashMap)。HashMap的类图相对简单,主要就是继承了AbstractMap,有一点需要注意,虽然没有实现Iterable接口,但HashMap本身还是实现了迭代器的功能。本文基于JDK1.8成员变量及常量HashMap是一个N
编码博客控
·
2020-09-14 12:23
容器
JAVA
JAVA
Java容器
——ArrayList(Java8 )源码解析
ArrayList是一种常用List类型实现,也是Java集合中的的常用类型,以遍历查询性能优异著称,继承关系如下:可见ArrayList实现了Cloneable,Serializable,RandomAcess和List接口,继承了AbstractList抽象类,简而言之,ArrayList是一个实现了可复制,可序列化,支持快速随机访问的List类型。这里最重要的是实现了List的接口,包括初始
qisong3
·
2020-09-14 12:50
Java
容器
Java8容器源码-目录
从今天开始,就要开始学习
Java容器
了。本专栏从了解到使用再到源码,详细深入地讲解
Java容器
(集合)。本专栏主要参考《ThinkInJava》一书,还有网上的一些技术文章。
潘威威
·
2020-09-14 12:17
Java8容器
Java8容器源码札记
java
容器
集合
源码
think-in-java
java容器
之LinkedList源码解析(jdk8)
一、LinkedList简介LinkedList的数据结构为双向链表结构,链表数据结构的特点是每个元素分配的空间不必连续,所以它的特点是插入和删除数据的效率非常高,但随即访问元素的效率很低,因为链表没有下标,所以只能通过遍历来访问元素。结构如下图所示。二、LinkedList类的注解在读源码之前,我们来看看LinkedList类上都注释了一些什么内容。1)LinkedList是List和Deque
pinchaozhao
·
2020-09-14 12:14
java源码分析
Java容器
类源码-LinkedList的最全的源码分析
一、概述我们都知道,在Java中容器类里面包含了Collections(单列集合)和Map(双列集合),而Collections中又包含了List(有序,元素可以重复)和Set(无序,元素不重复),而List中又包含了ArrayList、LinkedList和Vector(JDK1.2之后已经过时),所以ArrayList和LinkedList就作为了我们常用的List集合,它们都有共同点,都是线
Ryane_Lee
·
2020-09-14 12:36
#
1.Java源码
上一页
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
其他