六月的雨的博客
  • 首页
  • 归档
  • 分类
  • 关于

数据存储

SharedPreferences基本使用1234SharedPreferences sharedPreferences = this.getSharedPreferences(getLocalClassName(), MODE_PRIVATE);SharedPreferences.Editor editor = sharedPreferences.edit();editor.putString(
2025-12-16
源码

SparseArray 和 ArrayMap

ArrayMapAndroid 专门针对内存优化而设计的,用于取代 Java API 中的 HashMap 数据结构。为了更进一步优化key 是 int 类型的 Map,Android 再次提供效率更高的数据结构 SparseArray,可避免自动装箱过程。对于 key 为其他类型则可使用 ArrayMap。HashMap 的查找和插入时间复杂度为 O (1)的代价是牺牲大量的内存来实现的,而 S
2025-12-16
源码

Serializable 与 Parcelable

序列化序列化的三种场景: 持久化存储 通过 Socket 进行网络传输 深拷贝 把数据对象(⼀般是内存中的,例如 JVM 中的对象)转换成字节序列的过程。对象在程序内存⾥的存放形式是散乱的(存放在不同的内存区域、并且由引⽤进⾏连接),通过序列化可以把内存中的对象转换成⼀个字节序列,从⽽使⽤ byte[] 等形式进⾏本地存储或⽹络传输,在需要的时候重新组装(反序列化)来使⽤。把内存中的对象变成二
2025-12-16
源码

HashMap、lru、散列表

HashMapHash:从数据中提出摘要信息,数字指纹,验证唯一性,完整性。 HashMap 的数据结构:HashMap 实际上是一个数组和链表(“链表散列”)的数据结构。底层就是一个数组结构,数组中的每一项又是一个链表。 entry 每个元素 通过 hashCode 来算出指定数组的索引可以快速定位到要找的对象在数组中的位置,之后再遍历链表找到对应值,理想情况下时间复杂度为 O(1) 不同对
2025-12-16
源码

数据结构和算法分享

数据结构和算法部分内容来自极客时间课程 数据结构与算法之美 数据结构和算法 举个例子:图书管理员会将书籍分门别类进行“存储”,按照一定规律编号,这就是书籍这种“数据”的存储结构。 那我们如何来查找一本书呢?有很多种办法,你当然可以一本一本地找,也可以先根据书籍类别的编号,是人文,还是科学、计算机,来定位书架,然后再依次查找。笼统地说,这些查找方法都是算法。 数据结构和算法是相辅相成的。数据结构是为
2025-12-16
算法

7-贪心、回溯、动态规划

动态规划淘宝的“双十一”购物节有各种促销活动,比如“满 200 元减 50 元”。假设你女朋友的购物车中有 n 个(n>100)想买的商品,她希望从里面选几个,在凑够满减条件的前提下,让选出来的商品价格总和最大程度地接近满减条件(200 元),这样就可以极大限度地“薅羊毛”。作为程序员的你,能不能编个代码来帮她搞定呢? 动态规划比较适合用来求解最优问题,比如求最大值、最小值等等。最优子结构指
2025-12-16
算法

5-链表题

链表反转常见的解决方法分为递归和迭代两种我们知道迭代是从前往后依次处理,直到循环到链尾;而递归恰恰相反,首先一直迭代到链尾也就是递归基判断的准则,然后再逐层返回处理到开头。总结来说,链表翻转操作的顺序对于迭代来说是从链头往链尾,而对于递归是从链尾往链头。下面我会用详细的图文来剖析其中实现的细节。 递归操作链表并不高效。和迭代解法相比,虽然时间复杂度都是 O(N),但是迭代解法的空间复杂度是 O(1
2025-12-16
算法

4-二叉树

总结树是无向、连通的无环图。 二叉树的提出其实主要就是为了提高查找效率,比如我们常用的 HashMap 在处理哈希冲突严重时,拉链过长导致查找效率降低,就引入了红黑树。我们知道,二分查找可以缩短查找的时间,但是它要求查找的数据必须是有序的。每次查找、操作时都要维护一个有序的数据集,于是有了二叉查找树这个概念。 分类 二叉树即是每个节点最多包含左子节点与右子节点这两个节点的树形数据结构 满二叉树
2025-12-16
算法

3-二分、字符串

二分查找有点像分治,底层必须依赖数组,并且还要求数据是有序的。二分查找更适合处理静态数据,也就是没有频繁的数据插入、删除操作。 这是一个等比数列。其中 n/2k=1 时,k 的值就是总共缩小的次数。而每一次缩小操作只涉及两个数据的大小比较,所以,经过了 k 次区间缩小操作,时间复杂度就是 O (k)。通过 n/2k=1,我们可以求得 k=log2
2025-12-16
算法

2-递归、排序

如何在海量数据中快速查找某个数据?建立索引,空间换时间,例如数据库,存储在硬盘先思考后写;不要惧怕修改 递归先写一个的解决方法,不想多层,写完再想如何多个 周末你带着女朋友去电影院看电影,女朋友问你,咱们现在坐在第几排啊?电影院里面太黑了,看不清,没法数,现在你怎么办?别忘了你是程序员,这个可难不倒你,递归就开始排上用场了。于是你就问前面一排的人他是第几排,你想只要在他的数字上加一,就知道自己在哪
2025-12-16
算法
123456…12

搜索

Hexo Fluid
总访问量 次 总访客数 人