大厂之路一由浅入深、并行基础、源码分析一 “J.U.C”之collections框架:综述
- 参考博客:点击!!!
- 写这一篇文章的目的,是为了让自己更好的把握框架,来更好的整理自己所学的知识,基本来源于上面这篇文章,也可以说成转载吧,大家可以去那位大神的博客进一步观看,谢谢!
- Java集合包之整体框架
- Collections的由来
- JUC中的集合类
Java集合包之整体框架
- 在我们了解学习collections之前,我们先理清java集合的总体框架;
- Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、映射、队列、栈、数组等;
- Java集合工具包位置是java.util.*;
- Java集合主要可以划分为4个部分:
1️⃣、List链表;
2️⃣、Set集合;
3️⃣、Map映射;
4️⃣、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections);
- Java集合工具包框架图(如下):
- 我们对上面的框架图进行分析:
- 首先占据这个框架图大部分的就两个类:Collection和Map;
- Collection: ☪☪
- Collection是一个接口,是高度抽象出来的集合,它包含了集合的基本操作和属性;
- Collection包含了List、Set两大分支;
- List: 是一个有序的队列,每一个元素都有它的索引,List的实现类有LinkedList, ArrayList, Vector, Stack;
- Set: 是一个不允许有重复元素的集合;Set的实现类有 HastSet和TreeSet;HashSet依赖于HashMap,它实际上是通过HashMap实现的;TreeSet依赖于TreeMap,它实际上是通过TreeMap实现的;
- Map: ☪☪
- Map是一个映射接口,即key-value键值对;
- Map中的每一个元素包含 “一个key”和“key对应的value”;
- AbstractMap是个抽象类,它实现了Map接口中的大部分API;
- HashMap,TreeMap,WeakHashMap 都是继承于AbstractMap;
- 另外,Hashtable 虽然继承于Dictionary,但它实现了Map接口;
- Iterator: ☸☸
- 它是遍历集合的工具,即我们通常通过Iterator迭代器来遍历集合。;
- 我们说Collection依赖于Iterator,是因为Collection的实现类都要实现iterator()函数,返回一个Iterator对象;
- ListIterator: 是专门为遍历List而存在的;
- Enumeration: ☸☸
- 它是JDK 1.0引入的抽象类;
- 作用和Iterator一样,也是遍历集合;但是Enumeration的功能要比Iterator少;
- 在上面的框图中,Enumeration只能在Hashtable, Vector, Stack中使用;
- Arrays:
大厂之路一由浅入深、并行基础、源码分析一 “J.U.C”之collections框架:综述相关推荐
- 大厂之路一由浅入深、并行基础、源码分析一 “J.U.C”之collections框架:ConcurrentHashMap扩容迁移等方法的源码分析
参考文献: 本篇文章主要来源于这篇博客,本人对ConcurrentHashMap的源码之前没有学,虽然看了书但是不涉及这些,所以大部分都来源于观看大神博客的感悟,如果大家需要,可以看一看,也可以点击跳 ...
- 大厂之路一由浅入深、并行基础、源码分析一 “J.U.C.L”之线程池(最全,最深,最喜欢)
参考博客: 点击!!!!!点击!!!!!点击!!!!!点击!!!!!点击!!!!!点击!!!!!延迟队列详情点击!!主要参考,点击!!!!! 为什么提出线程池? 什么是线程池技术? 什么时候用线程池计 ...
- Python 闯关之路一(语法基础)
原文:https://www.cnblogs.com/wj-1314/p/8403977.html python 闯关之路一(语法基础) 1,什么是编程?为什么要编程? 答:编程是个动词,编程就等于写 ...
- Oracle并行基础二
Oracle并行基础(连载二) 作者:沃趣科技高级数据库技术专家 魏兴华 消费者生产者模型的限制 根据上面的介绍,你已经知道了,一个并行操作内一般会具有两组PX slave进程,一组为生产者,一组为消 ...
- Algorithm:【Algorithm算法进阶之路】之数据结构基础知识
Algorithm:[Algorithm算法进阶之路]之数据结构基础知识 相关文章 Algorithm:[Algorithm算法进阶之路]之数据结构二十多种算法演示 Algorithm:[Algori ...
- 【博学谷学习记录】超强总结,用心分享丨大数据超神之路(五):Hadooop基础篇
文章目录 前言 1.编译源码 1.1 官网下载编译后的包 1.2 手动编译 1.2.1 安装编译相关的依赖 1.2.2 手动安装cmake3.13.5 1.2.3 手动安装snappy1.1.3 1. ...
- 《四海小记c++学习之路》第一阶段 基础
<四海小记c++学习之路>第一阶段 基础 第一阶段 基础 1 c++初识 1.1 第一个c++程序 1.1.1创建项目 1.1.3 c++书写Helloworld 1.2 注释 1.3 变 ...
- java基础巩固-宇宙第一AiYWM:为了维持生计,Spring全家桶_Part1-3(学学Spring源码呗:默认的标签和自定义标签是咋解析的)~整起
Part3:上一次说到了Spring的DefaultBeanDefinitionDocumentReader类中的parseBeanDefinitions(Element root, BeanDefi ...
- 【Android 异步操作】AsyncTask 异步任务 ( AsyncTask 异步任务执行方法 execute 方法相关源码解析 )
文章目录 一.AsyncTask 异步任务执行方法 execute() 引入 二.AsyncTask 异步任务执行方法 execute() 三.sDefaultExecutor 线程池解析 四.exe ...
最新文章
- 智能车竞赛提问回复-2021-3-25
- 在 Eclipse Galileo 中更快地编写 Java 代码使用新的 toString() 生成器
- 利用UDP19端口实施DOS攻击的真实案例
- mysql grant 表通配符_mysql如何使用GRANT表----访问控制
- Lua开发工作笔记0004---交互式编程与脚本式编程及注释的写法
- 计算机二级法律一班题目,湖南省计算机二级考试 程序设计题目精选30道
- 绘图之使用工作空间直接绘图
- LINUX下载编译libsrtp-1.5.0
- c语言qsort函数对结构体的一级排序,sort和qsort函数对结构体的二级排序
- Win7 FTP搭建
- 移动播放器html,支持移动平台的Html5播放器
- 李若彤揭秘退隐10年原因:感情不顺 父亲离世 曾患抑郁症
- ERP实施设防三大雷区(转载)
- 2012MDCC中国·移动开发者大会 邀请函
- mac android studio Waiting for application to come online解决方案
- Hadoop部署(一) Ubantu Java JDK安装
- 模电——磁珠的前世今生
- *.axf: Error: L6218E: Undefined symbol xxx(xxx.o)问题解决与inline函数的声明
- 三节课产品经理P1 学习总结
- Win10 x64 红米note 11 解锁工具识别不到手机 问题[已解决]
热门文章
- 大厂之路一由浅入深、并行基础、源码分析一 “J.U.C”之collections框架:ConcurrentHashMap扩容迁移等方法的源码分析