摘要:
canal源码分析简介 canal是阿里巴巴开源的mysql数据库binlog的增量订阅&消费组件。项目github地址为:https://github.com/alibaba/canal。 关于canal的基础知识可以参考:https://github.com/alibaba/canal/wiki 阅读全文
摘要:
在“队列”(Queue)这种数据结构中,数据项是先进先出(FIFO:first in first out)。队列的容量可以有限,也可以是无限的。一、基于数组的Queue实现一般情况下,对于Queue而言,最核心的操作是:插入队列(enqueue)、移出队列(dequeue)。因为在队列中,插入操作是 阅读全文
摘要:
栈(Stack) 栈(Stack)是一种后进先出的数据结构(LIFO:last in first out),只允许访问栈中的第一个数据项:即最后插入的数据项。移除这个数据项之后,才能看到第二个数据项,以此类推。 往栈中存入数据称之为压栈(push),移除数据称之为弹栈(pop),此外通常还提供查看栈 阅读全文
摘要:
迭代器(iterator) 如果我们想遍历数组,这很容易,因为可以用数组的下标跟踪所在的位置,然而在链表中,节点没有这样的下标,怎样才能提供给链表用户类似于数组下标的东西呢?这就是迭代器(iterator)的作用。 我们知道添加到链表中的数据(data),都会包装成一个节点(node),节点之间通过 阅读全文
摘要:
链表可能是继数组之后第二种使用最广泛的通用存储结构。 单链表 双端链表 有序链表 双向列表 有迭代器的列表 链表与数组一样,都作为数据的基本存储结构,但是在存储原理上二者是不同的。在数组中,数据是存储在一段连续的内存空间中,我们可以通过下标来访问数组中的元素;而在链表中,元素是存储在不同的内存空间中 阅读全文
摘要:
基于数组的ArrayList ArrayList是Java中我们最常使用的List接口的实现类,其是内部就是通过维护一个无序数组来实现的。因此ArrayList具备无须数组拥有的所有优点和缺点: 操作 时间复杂度 插入 O(1) 删除 O(N) 查找 O(N) 1、注意: 1、ArrayList总是 阅读全文