lix_uan lix_uan
2年前
Java学习总结
JavaHashMap和HashTablejdk1.8中采用数组链表红黑树实现首先会创建一个默认长度为16,默认加载因为0.75的table数组根据hash值和数组的长度计算应存入的位置判断当前位置是否为空,如果为空则直接存入如果当前位置不为空,则调用equals方法比较属性值如果一样则替换为新的,如果不一样则采用头插法插入当节点数多于8
cpp加油站 cpp加油站
3年前
上次说了静态数组可变长,今天知道原理了
之前发了一篇文章,讲c99变长数组的,链接如下:发出去以后有了挺多的反馈,因为这并不是一个很难的知识点,所以如果接触过的自然而然是知道,但还真有挺多人表示不知道和不相信这个事,同时我上次也只是简单的说了一下这个事,没有去讲解这个变长静态数组的实现原理,今天补上。先看一下思维导图:1.变长数组是长度一直可以变的吗变长数组,那么是长度一直可以变的吗,到底什么
22 22
3年前
二叉树创建后,如何使用递归和栈遍历二叉树?
0.前言前文主要介绍了树的相关概念和原理,本文主要内容为二叉树的创建及遍历的代码实现,其中包括递归遍历和栈遍历。1.二叉树的实现思路1.0.顺序存储——数组实现前面介绍了满二叉树和完全二叉树,我们对其进行了编号——从0到n的不中断顺序编号,而恰好,数组也有一个这样的编号——数组下标,只要我们把二者联合起来,数组就能存储二叉树了。那么非满
九路 九路
4年前
5 手写Java Stack 核心源码
Stack是Java中常用的数据结构之一,Stack具有"后进先出(LIFO)"的性质。只能在一端进行插入或者删除,即压栈与出栈栈的实现比较简单,性质也简单。可以用一个数组来实现栈结构。1.入栈的时候,只在数组尾部插入2.出栈的时候,只在数组尾部删除我们来看一下Stack的用法:如下publicstaticvoidmai
Wesley13 Wesley13
3年前
jdk1.4和jdk1.5的invoke方法的区别
jdk1.4和jdk1.5的invoke方法的区别jdk1.5:publicObjectinvoke(Objectobj,Object...args)jdk1.4publicObjectinvoke(Objectobj,Object\\args)按1.4的语法,需要将一个数组作为参数传递给invoke方法时,数组中的每个元素分别
Souleigh ✨ Souleigh ✨
4年前
JS 实现单链表
要存储多个元素,数组(或列表)可能是最常用的数据结构。但这种数据结构有一个缺点:(在大多数语言中)数据的大小是固定的,从数组的起点或中间插入或移除项的成本很高。  链表存储有序的集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成。  相对于传统的数组,链表的一个好处是
Stella981 Stella981
3年前
CentOS升级Python到2.7版本
查看python的版本pythonVPython2.4.31.先安装GCCyumyinstallgcc2.下载Python2.7.2wgethttp://python.org/ftp/python/2.7.2/Python2.7.2.tar.bz23.解压Python2.7.2
Wesley13 Wesley13
3年前
Java文件写入与读取实例求最大子数组
出现bug的点:输入数组无限大;输入的整数,量大:解决方案:向文件中输入随机数组,大小范围与量都可以控制。源代码:importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileInputS
Stella981 Stella981
3年前
Google布隆过滤器与Redis布隆过滤器详解
一、什么是布隆过滤器?布隆过滤器可以用来判断一个元素是否在一个集合中。它的优势是只需要占用很小的内存空间以及有着高效的查询效率。对于布隆过滤器而言,它的本质是一个位数组:位数组就是数组的每个元素都只占用1bit,并且每个元素只能是0或者1布隆过滤器除了一个位数组,还有K个哈希函数。当一个元素加入布隆过滤器中的时候,会进行如下操作:
菜园前端 菜园前端
1年前
什么是二分搜索?
原文链接:什么是二分搜索?二分搜索是一种比较高效的搜索算法,但前提必须是有序数组。主要步骤如下:1.从数组的中间元素开始,如果中间元素正好是目标值,则搜索结束2.如果目标值大于或者小于中间元素,则在大于或者小于中间元素的那一半数组中继续二分搜索基础案例时间