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接口提 ...
随机推荐
- LVS负载均衡(4)-- LVS FWM防火墙标记
防火墙标记的作用是:借助于防火墙标记来分类报文,然后基于标记定义集群服务:可将多个不同的应用使用同一个集群服务进行调度. 实现方法: 在Director主机打标记,作用在mangle表的PREROUT ...
- Spring如何控制Bean的加载顺序
前言 正常情况下,Spring 容器加载 Bean 的顺序是不确定的,那么我们如果需要按顺序加载 Bean 时应如何操作?本文将详细讲述我们如何才能控制 Bean 的加载顺序. 场景 我创建了 4 个 ...
- kkfileview搭建指南
最近公司有个需求,需要在线预览pdf,excel,world文档,pdf浏览器是直接支持预览的,vue也有很多插件支持,但是world文档和excel的方案就非常少了,市面上很多付费的,但是咱一般不舍 ...
- 鸿蒙HarmonyOS实战-Stage模型(ExtensionAbility组件)
一.ExtensionAbility组件 1.概念 HarmonyOS中的ExtensionAbility组件是一种能够扩展系统功能的能力组件.它可以通过扩展系统能力接口,为应用程序提供一些特定的功能 ...
- MySQL慢查询及优化
最近做一个CRM系统,发现了慢查询日志里记载了许多的慢sql,于是就对其进行了sql优化.在优化的过程中,自己也归纳整理了一些sql优化的方案.今天就来和大家聊聊. **1.慢查询的分析** 常见的分 ...
- C# xml与对象相互转换
例如: 1.对象转xml(对象序列化为xml) string strImage= XmlSerializeHelper.Serialize<List<ImageSingle>> ...
- 彻底搞清楚vue3的defineExpose宏函数是如何暴露方法给父组件使用
前言 众所周知,当子组件使用setup后,父组件就不能像vue2那样直接就可以访问子组件内的属性和方法.这个时候就需要在子组件内使用defineExpose宏函数来指定想要暴露出去的属性和方法.这篇文 ...
- 【Effective C++】设计与声明——reference篇
以pass-by-reference-to-const替换pass-by-value 缺省情况下C++以by value方式传递对象至(或来自)函数.除非你另外指定,否则函数参数都是以实际实参的复件( ...
- docker inspect 格式化输出
docker inspect 例子 [root@hmm ~]# docker run -tid --name YUN-teSt ubuntu 337170fc3109a824273a7f04dd5c5 ...
- Centos7无法ping通内网、外网
主要检查网络的配置是否正确,我测试时使用的是VMware虚拟机,需要保证centos中的网络配置和VMware中的一致. (1)VMware的配置 网络适配器选择NAT模式 查看NAT设置,这里需要记 ...