
数据结构与集合
数据结构是算法的基石,它是一种体现基础逻辑思维的内功心法, 也是计算机从业人员能力图谱中的重要一项
大超Bing
这个作者很懒,什么都没留下…
展开
-
数据结构与集合(八) --- Map类集合之(ConcurrentHashMap)
文章目录前言一、CAS扩展说明二、高并发场景下哈希式集合历史三、ConcurrentHashMap 属性源码分析1.引入库2.读入数据总结前言考虑到线程并发安全性,ConcurrentHashMap 是比HashMap 更加推荐的一种哈希式集合. JDK8 对ConcurrentHashMap 进行了脱胎换骨式的改造,使用了大量的lock-free 技术来减轻因锁的竞争而对性能造成的影响. 它是学习并发编程的一个绝佳示例,此类超过6300 行代码,涉及 volatile , CAS ,锁 , 链表原创 2020-10-21 20:20:47 · 313 阅读 · 0 评论 -
数据结构与集合(八) --- Map类集合之(HashMap)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码原创 2020-10-20 16:07:49 · 310 阅读 · 1 评论 -
数据结构与集合(八) --- Map类集合之(TreeMap)
数据结构与集合(八) — Map类集合之(TreeMap)原创 2020-10-17 11:52:05 · 444 阅读 · 2 评论 -
数据结构与集合(八) --- Map类集合之(红黑树)
1.0 Map类集合概述在数据元素的存储、查找、修改和遍历中,Java中的Map类集合都与Collection类集合存在很大不同。它是与Collection类平级的一个接口,在集合框架上,它有一条微弱的依赖线与Collection类产生关联,那是因为部分方法返回Collection 视图,比如values()方法返回的所有Value的列表。Map类集合中的存储单位是KV 键值对,Map类就是使用一定的哈希算法形成一组比较均匀的哈希值作为Key,Value值挂载Key上。Map类的特点如下:Map类取代原创 2020-10-14 20:20:33 · 704 阅读 · 0 评论 -
数据结构与集合(七) --- fail-fast 机制
什么是 fail-fast 机制fail-fast 机制是集合世界中比较常见的错误检测机制,通常出现在遍历集合元素的过程中.下面通过校园生活中的一个例子来解释什么是 fail-fast 机制:上课前,班长开始点名. 刚点到一半,这时从教室外三三两两进来若干同学,同学们就起哄:点错了!班长于是就重新开始点名,点到中途,又出去几位同学,同学们又起哄说: 点错了, 班长又需要重新点名(遍历),这就是 fail-fast 机制。它是一种对集合(班级)遍历操作时的错误检测机制,在遍历中途出现意料之外的修改时,原创 2020-10-13 21:03:05 · 175 阅读 · 0 评论 -
数据结构与集合(六) --- 元素的比较
元素的比较原创 2020-10-11 17:46:35 · 529 阅读 · 0 评论 -
数据结构与集合(五) --- 集合与泛型
为什么在集合中用泛型泛型与集合的联合使用,可以把泛型的功能发挥到极致.List、List、List<?> 三者的区别?怎么区分<? extends T> 与 <? super T> 的使用场景?List 完全没有类型限制和赋值限定, 如果天马行空地乱用,迟早会遭遇类型转换失败的异常. 很多程序员觉得List 的用法完全等同于List, 但在接受其他泛型赋值时会编译出错. List<?> 是一个泛型,在没有赋值之前,表示它可以接受任何类型的集合赋值,赋原创 2020-10-11 13:59:37 · 440 阅读 · 0 评论 -
数据结构与集合(四) --- 数组与集合互转
数组数组是一种顺序表, 它是组织和处理数据的一种常见方式, 可以使用索引下标进行快速定位并获取指定位置的元素,数组的下标从0 开始, 这源于 BCPL 语言,它将指针设置在0 的位置,用数组下标作为直接偏移量进行计算. 在java 体系中, 数组用以存储同一类型的对象, 一旦分配内存后 则无法扩容.声明数组和赋值的方式示例:// 初始化完成, 容量的大小即等于大括号内元素的个数,使用频率并不高String[] args3 = {"a","b"};String[] args4 = new Str原创 2020-10-11 11:49:53 · 565 阅读 · 0 评论 -
数据结构与集合(三) --- 集合初始化
集合初始化通常进行分配容量、设置特定参数等相关工作。从ArrayList 源码分析:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ private static final int DEFAULT_CAPACITY = 10; // 分配最大数组的大小 pr原创 2020-10-09 22:39:14 · 758 阅读 · 0 评论 -
数据结构与集合(二) --- 集合框架图
java中的集合时用于存储对象的工具类容器,它实现了常用的数据结构,提供了一系列公开的方法用于增加, 删除, 修改, 查找和遍历数据, 降低了日常开发成本.集合的种类非常多, 形成了一个比较经典的继承关系树, 称为Java 集合框架图, 如图所示:框架图中主要分为两类: 第一类是按照单个元素存储的Collection,在继承树中Set 和List 都实现了 Collection 接口; 第二类就是按照Key-Value 存储的Map .在集合框架中, 红色代表接口, 蓝色代表抽象类,绿色代表并发包中原创 2020-10-09 08:27:31 · 802 阅读 · 0 评论 -
数据结构与集合(一) --- 数据结构
数据结构定义数据结构是指逻辑意义上的数据组织方式及其相应的处理方式.(1) 什么是逻辑意义?数据结构的抽象表达非常丰富,而实际物理存储的方式相对单一. 比如, 二叉树在磁盘中的存储真的是树形排序吗?(2) 什么是数据组织方式?逻辑意义上的组织方式有很多,比如树, 图, 队列, 哈希等. 树可以是二叉树, 三叉树, B+树等; 图可以是有向图或无向图; 队列是先进先出的线性结构; 哈希是根据某种算法直接定位的数据组织方式.(3) 什么是数据处理方式?在既定的数据组织方式上,以某种特定的算法实现数原创 2020-10-08 22:03:26 · 293 阅读 · 0 评论