##头文件 map:#include unordered_map:#include<unordered_map> ##底层实现 map:内部是红黑树,自动排序,所以默认有序 + 补充:红黑树是非严格平衡二叉搜索树,而AVL是严格平衡二叉搜索树 unordered_map:内部是哈希表,所以默认无序 ...
分类:
编程语言 时间:
2021-03-17 14:26:54
阅读次数:
0
首先,我们知道 HashMap 的底层实现是开放地址法 + 链地址法的方式来实现。 即数组 + 链表的实现方式,通过计算哈希值,找到数组对应的位置,如果已存在元素,就加到这个位置的链表上。在 Java 8 之后,链表过长还会转化为红黑树。 这个数组并不是一开始就很大,而是随着 HashMap 里面的 ...
分类:
编程语言 时间:
2021-02-19 12:53:29
阅读次数:
0
前提 UUID是Universally Unique IDentifier的缩写,翻译为通用唯一标识符或者全局唯一标识符。对于UUID的描述,下面摘录一下规范文件A Universally Unique IDentifier (UUID) URN Namespace中的一些描述: UUID(也称为G ...
分类:
其他好文 时间:
2021-01-29 12:18:54
阅读次数:
0
public class ArrayQueue<T> extends AbstractList<T>{ //定义必要的属性,容量、数组、头指针、尾指针 private int capacity; private int T[] queue; private int head; private int ...
分类:
其他好文 时间:
2021-01-26 12:17:34
阅读次数:
0
1. 二分查找 C++ STL标准库中提供有 lower_bound()、upper_bound()、equal_range() 以及 binary_search() 这 4 个查找函数,它们的底层实现采用的都是二分查找的方式。 1.1 lower_bound() lower_bound() 函数用 ...
分类:
其他好文 时间:
2021-01-18 11:23:23
阅读次数:
0
日常项目中,使用注解@EnableAspectJAutoProxy @EnableAsync 这里面涉及对@Import注解支撑的底层原理:ConfigurationClassPostProcessor 这个类,说到这个类,我们要先从SpringBoot启动流程说起。 首先,看springboot启 ...
分类:
其他好文 时间:
2021-01-06 12:14:57
阅读次数:
0
压缩列表是 ZSET、HASH和 LIST 类型的其中一种编码的底层实现,是由一系列特殊编码的连续内存块组成的顺序型数据结构,其目的是节省内存。 ziplist 的结构 外层结构 下图展示了压缩列表的组成: 各个字段的含义如下: zlbytes:是一个无符号 4 字节整数,保存着 ziplist 使 ...
分类:
其他好文 时间:
2021-01-01 12:13:35
阅读次数:
0
前言 上次看ArrayList底层机制时把ArrayListSpliterator放了放,现在回过头来具体看看实现。 简单粗暴 直接上代码吧! static final class ArrayListSpliterator<E> implements Spliterator<E> { //指向当前集 ...
分类:
其他好文 时间:
2020-12-23 12:36:25
阅读次数:
0
27 String类 底层实现 ? final的char数组 常用的加强版 StringBuffer 特点:线程安全、速度慢 StringBuilder 特点:线程不安全、速度快 出现的原因:解决String自行拼接以及反序麻烦等问题 加强版与String类型的转换 对象名.toString(); ...
分类:
其他好文 时间:
2020-12-05 10:52:08
阅读次数:
7
1.什么是Lucene?作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。apache软件基金会的网站使用了Lucene作为全文检索的引擎,IBM的开源软件eclipse的2.1版本中也采用了Lucene作为
分类:
Web程序 时间:
2020-12-04 11:11:11
阅读次数:
11