程序内功
文章平均质量分 77
李小白lt
kotlin yyds
展开
-
数据结构特性解析 (五)hash表
前言hash表是编程中常用的数据结构,也是时间复杂度较低的数据结构,一般来说从hash表中取数据的时间复杂度定义为接近常量O(1),为什么取数据如此高效呢,数据是怎么存的呢?接下来来分析下正文hash表的内部数据结构为数组,但存储数据并不是顺序存储的,而是由hash算法+分配索引算法来分配索引比如我要存储int类型的数据,数据为1-10,hash算法为他自身即为hash值,分配算法为求余算法,这时申请一个长度为10的数组,图示如下优缺点...原创 2021-04-30 14:56:05 · 360 阅读 · 0 评论 -
数据结构特性解析 (四)LinkedList
描述LinkedList应该也是开发中比较常用的数据结构了,其基于链表数据结构实现,添加和删除效率相对比较高,而随机访问效率偏低特点1.LinkedList是双向不循环链表通过查看链节点类: private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E eleme原创 2020-12-19 16:01:21 · 351 阅读 · 2 评论 -
数据结构特性解析 (三) 链表
前言链表是一种比较简单的数据结构,你可以在编程环境下轻松写出一个链表,甚至生活中也有很多链表的提现,比如铁链,文章底部的下一篇上一篇都可以称作链表数据结构描述链表像铁链一样,一个链节点连着另一个或另两个节点.在计算机中,一般是每一个节点除了存储自身的信息外,还会存储另一个节点的内存地址,相当于链接到下一个节点,如下图所示(红色是链表的节点,黑色是被其他数据占用的内存)可以看到链表可以不按照顺序存,只需要指向下一个地址特点1.链表相对于数组,内存占用更高上面的代码就原创 2020-06-30 17:44:21 · 3401 阅读 · 2 评论 -
手动实现kt(java)同步工作流和异步工作流
前言项目开发中可能会出现需要多个同步任务串行执行,或者多个异步任务都执行完毕再执行下一步的其实如果用kotlin的协程的话,可以很方便的完成,但如果不想用kt写或者引入协程库的话,就可以用下面两个工具类正文同步串行执行任务,使用链表结构import com.lt.androidkj.utils.mlistener.EmptyListenerimport com.lt.and...原创 2020-01-30 23:25:28 · 1265 阅读 · 2 评论 -
图解八大排序算法
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 本文将依次介绍上述八大排序算法。 算法一:插入排序插入排序是一种最简单直观的排序算法,它的工作原理是通过构...转载 2018-07-30 15:37:45 · 821 阅读 · 0 评论 -
JVM内存管理及GC机制
一、概述Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。经过这么长时间的发展,Java GC机制已经日臻完善,几乎可以自动的为我们做绝大多数的事情。虽然java不需要开发人员显示的分配和回收内存,这对开发...转载 2018-08-30 15:02:44 · 127 阅读 · 0 评论 -
数据结构特性解析 (一) 数组
前言数组是java中最基本的数据结构,有很多更高级的数据接口实现方式都是使用的数组,所以了解数组是很重要的描述数组是一个对象,内部有一块连续的内存,自身只占用很小的内存,其他位置都是根据长度和类型而分配的值对象或者引用值对象特点1. 数组长度在初始化时确定且无法修改由上图可见,数组并没有add或修改长度的方法2.数组每个位置所占的内存大小是在初始化时固定的数组中...原创 2019-09-30 16:10:34 · 381 阅读 · 1 评论 -
数据结构特性解析 (二) ArrayList
前言ArrayList可能是Java中使用次数最多的数据结构了,因此了解其特性能比较重要描述ArrayList是一个数组队列,相当于动态数组.与Java中的数组相比,它的容量能动态增长.并且ArrayList还有一些添加,遍历和移除的操作特点1.ArrayList内部实现是利用Java的数组这是内部存储数据的Object数组add方法的实现方式,根据源码可以看到...原创 2020-02-29 20:22:38 · 330 阅读 · 1 评论