Java集合框架总结图
- Collection 接口的接口(对象集合)
- ├——-List 接口:元素都有索引,可以重复,有序(迭代器顺序)。
- │—————-├ LinkedList 接口实现类, 双向链表, 查询慢,增删快,效率高, 没有同步, 线程不安全
- │—————-├ ArrayList 接口实现类, 数组, 查询快,增删慢,效率高,支持随机访问, 没有同步, 线程不安全
- │—————-└ Vector 接口实现类 数组,查询快,增删慢,效率低, 同步, 线程安全
- │———————-└ Stack 是Vector类的实现类
- └——-Set 接口: 仅接收一次,不可重复,并做内部排序,存储和取出顺序不一致
- ├ —————└ TreeSet 底层实现为二叉树,支持自然排序(默认)和定制排序,不允许null值
- ├—————-└ HashSet 使用hash表(数组)存储元素 ,无序,允许null值
- └————————└ LinkedHashSet 以元素插入的顺序来维护集合的链接表,允许null值
- Map 接口 键值对的集合 (双列集合)
- ├———Hashtable 接口实现类,哈希表(数组+链表),不允许key、value 是null,无序, 同步, 线程安全(全部锁)
- ├———HashMap 接口实现类,哈希表(数组+链表),允许一个 key 为 null,无序,没有同步, 线程不安全
- │—————–├ LinkedHashMap双向链表和哈希表实现 ,key和value都允许为空,迭代器顺序,线程不安全
- │—————–└ WeakHashMap
- ├ ——–TreeMap 红黑树对所有的key进行排序,value允许为null,key不允许为null,红黑树顺序(可自定义),线程不安全
- ├ ——–ConcurrentHashMap 数组+链表+红黑树,不允许key、value 是null,无序,线程安全(部分锁)
- └———IdentifyHashMap
——————————————————————————————————————————————
ConcurrentHashMap的应用场景是高并发,但是并不能保证线程安全。
ConcurrentHashMap能够保证每一次调用都是原子操作,但是并不保证多次调用之间也是原子操作。
ConcurrentHashMap是使用了锁分段技术技术来保证线程安全的。
锁分段技术:首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。

Java集合框架总结图的更多相关文章
- Java集合框架类图
Java集合框架的类图 http://blog.toruneko.net/28
- Java集合框架类
java集合框架类图 Collection接口(List.Set.Queue.Stack):
- java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类
本文关键词: java集合框架 框架设计理念 容器 继承层级结构 继承图 集合框架中的抽象类 主要的实现类 实现类特性 集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...
- 知识点:Java 集合框架图
知识点:Java 集合框架图 总结:Java 集合进阶精讲1 总结:Java 集合进阶精讲2-ArrayList Java集合框架图 我们经常使用的Arrayist.LinkedList继承的关系挺复 ...
- 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射
从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 ...
- 【集合系列】- 初探java集合框架图
一.集合类简介 Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中.从Java 5 增加了泛型以后,Java集合可以记住容器中对象的数 ...
- 【集合框架】Java集合框架综述
一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...
- 22章、Java集合框架习题
1.描述Java集合框架.列出接口.便利抽象类和具体类. Java集合框架支持2种容器:(1) 集合(Collection),存储元素集合 (2)图(Map),存储键值对.
- (转)Java集合框架:HashMap
来源:朱小厮 链接:http://blog.csdn.net/u013256816/article/details/50912762 Java集合框架概述 Java集合框架无论是在工作.学习.面试中都 ...
- Java集合框架
集合框架体系如图所示 Java 集合框架提供了一套性能优良,使用方便的接口和类,java集合框架位于java.util包中, 所以当使用集合框架的时候需要进行导包. Map接口的常用方法 Map接口提 ...
随机推荐
- 可以远程剪视频、做PS设计的远程控制软件体验
编辑切换为居中 在这里插入图片描述 远程连接 资源共享的新时代 过去很长一段时间,计算机网络最主要的用途就是分享数据资源.进入新时代,伴随网络的高速发展以及云计算等技术的发展,我们进入了不仅仅是数 ...
- Django性能优化:提升加载速度
title: Django性能优化:提升加载速度 date: 2024/5/20 20:16:28 updated: 2024/5/20 20:16:28 categories: 后端开发 tags: ...
- 配置Ingress支持HTTPS访问(二):使用cert-manager申请证书
目录 一.系统环境 二.前言 三.Let's Encrypt和cert-manager简介 四.部署cert-manager 4.1 安装cert-manager 4.2 创建clusterissue ...
- golang nsq 同一个topic有多个channel,同时项目又互相引用时出现的问题
p.p1 { margin: 0; font: 12px ".PingFang SC" } span.s1 { font: 12px "Helvetica Neue&qu ...
- Android 13 - Media框架(17)- OpenMax(五)
关注公众号免费阅读全文,进入音视频开发技术分享群! 这一节最后来了解 OMX_Video.h 以及 OMX_Audio.h 中的内容 1.OMX_Video.h 这里只了解该文件中的 OMX_VIDE ...
- wpf – 如何在UIElement.Margin上为绑定设置FallbackValue?
<Border BorderBrush="#cccccc" BorderThickness="1" Margin="{Binding PushM ...
- opencv-python 实现鱼眼矫正 棋盘矫正法
.htmledit_views address, .htmledit_views cite, .htmledit_views dfn, .htmledit_views em, .htmledit_vi ...
- golang 的 net/http 和 net/rpc 的区别, rpc 效率比 http 高?
在Go语言中,net/http 和 net/rpc 是两个不同的包,它们分别用于实现不同的网络通信模式: net/http: net/http 包主要用于构建Web服务和客户端,它实现了HTTP协议, ...
- pandas基础--数据结构:DataFrame
从本文开始介绍pandas的相关知识. pandas含有是数据分析工作变得更快更简单的高级数据结构和操作工具,是基于numpy构建的. 本章节的代码引入pandas约定为:import pandas ...
- 后端给前端rtmp和flv直播 播放方法
const suffixal = this.videoObj.videoServer .split('?')[0] .split('.') .pop() var router = this.$rout ...