E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【JAVA数据结构】
Java数据结构
系列-数组
数组是应用最广泛的数据存储结构。它被植入到大部分编程语言中。由于数组十分易懂,所以它被用来作为介绍数据结构的起步点,并展示面向对象编程和数据结构之间的相互关系。使用数组创建数组Java中两种数据类型:基本类型和对象类型。在许多编程语言中(如C++),数组也是基本类型,但在Java中把它们当作对象来对待,因此在创建数组时必须使用new操作符:int[]intArray;intArray=newint
codersm
·
2020-04-04 16:52
Java数据结构
与算法 队列的初步认识(一)之数字解密
问题是这样的,有一串数字,需要进行一系列的解码,解密规则是:首先将第1个数删除,紧接着第2个数放到这串数的末尾,再将第3个数删除并将第4个数放到这串数的末尾,再将第5个数删除……,直到剩下最后一个数,将最后一个数也删除。按照删除的顺序,把这些删除的数连再一起,就是得到的密码。我们使用631758924作为样例,得到的结果应该是615947283。我们先来分析一下思路,这串数字就是一个队列,再排队,
薛定谔的猫狗
·
2020-04-04 16:05
java数据结构
在接触了java的这段时间内发现java帮我们coder做了很多很多事情,让编程变得更简单了,但同时也让coder变得更白痴了.就像很多公司的javacoder,在app里面,好像不是数组就是arraylist,固之然arraylist的确很好用,可以随机访问、自动增加容量的数组.这东西在我学习C的时候是从来没出现过的,或者可以说不敢想象能做的出来,而java就帮我们的coder实现了,但也像我之
天黑_0b25
·
2020-04-02 02:43
二叉树的遍历与删除(递归实现)
1.引言这一段时间都没看
java数据结构
,松懈了。今天记录下二叉树的遍历,建树,删除节点。下一章会用非递归的方式实现一下。
过期的薯条
·
2020-03-31 20:48
算法入门书籍该怎么选?快速找到适合你的书籍(详细,内含彩蛋哦~)
算法四、大话数据结构五、趣学算法六、数据结构与算法分析Java语言描述七、我的第一本算法书附:视频讲解
Java数据结构
和算法:图解
Java数据结构
和算法(韩顺平老师讲解)彩蛋小乔选书辛酸路:在我初入门学习算法时
小乔的编程内容分享站
·
2020-03-31 12:00
Java数据结构
和算法(二)——数组
上篇博客我们简单介绍了数据结构和算法的概念,对此模糊很正常,后面会慢慢通过具体的实例来介绍。本篇博客我们介绍数据结构的鼻祖——数组,可以说数组几乎能表示一切的数据结构,在每一门编程语言中,数组都是重要的数据结构,当然每种语言对数组的实现和处理也不相同,但是本质是都是用来存放数据的的结构,这里我们以Java语言为例,来详细介绍Java语言中数组的用法。1、Java数组介绍在Java中,数组是用来存放
IT可乐
·
2020-03-30 16:05
Java数据结构
与算法(三)-栈和队列
1.栈先进后出,后进先出栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。stack.pngpackagecom.fantj.
FantJ
·
2020-03-26 07:58
Java数据结构
实现折半查找的算法过程解析
折半查找技术,也就是二分查找,通常称为二分法查找。它的前期是线性表中的记录必须是关键码有序(通常从大到小有序),线性表必须采用顺序存储、折半查找的基本思想是:取中间记录作为比较对象,若给定值与中间记录的关键字,则在中间记录的关键字相等,则查找成功;若给定值小于中间记录的做半,去继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上述过程,直到查找成功,或所有查找区域无记录
摘星族
·
2020-03-25 12:56
Java数据结构
和算法(三)——冒泡、选择、插入排序算法
上一篇博客我们实现的数组结构是无序的,也就是纯粹按照插入顺序进行排列,那么如何进行元素排序,本篇博客我们介绍几种简单的排序算法。1、冒泡排序这个名词的由来很好理解,一般河水中的冒泡,水底刚冒出来的时候是比较小的,随着慢慢向水面浮起会逐渐增大,这物理规律我不作过多解释,大家只需要了解即可。冒泡算法的运作规律如下:①、比较相邻的元素。如果第一个比第二个大,就交换他们两个。②、对每一对相邻元素作同样的工
IT可乐
·
2020-03-24 03:30
Java数据结构
LinkedHashMap重写HashMap的get()newEntryIterator()addEntry()createEntry()等方法扩容的方式Hash桶的扩容,容量乘以2,重建桶内元素位置数据结构环形链表+Hash桶结构,新数据头插方法。是否accessOrder访问顺序访问序的话,已经访访问的移动到链表末端,Iterator是正序遍历LRUCacheremoveEldestEntry
SmarkingZhao
·
2020-03-23 12:40
java数据结构
(三)
publicclassArrayDequeextendsAbstractCollectionimplementsDeque,Cloneable,SerializabletransientObject[]elements;transientinthead;transientinttail;-------、publicinterfaceDequeextendsQueue{从定义可以看出,ArrayDe
谁吃了我的薯条
·
2020-03-21 10:47
《
Java数据结构
和算法》读书笔记
作为一个Java程序员,我为何要学习数据结构和算法呢?的确现在Java语言已经很强大,它对数组、链表、堆、队列等一系列数据结构进行了封装,使其应用起来方便快捷。更何况现在无论是前端还是后端都有大量的控件可用。数据结构和算法这些底层的东西,相对来说显得并不是那么重要了。但是一个只会使用代码的程序员未来又有多少成长的可能呢?程序对于我们来说到底有什么意义呢?在我看来,程序是为了解决现实中存在的,我们无
禾叶super
·
2020-03-17 22:37
Java数据结构
与算法(八)-二叉树
一、为什么要使用树有序数组插入、删除数据慢。链表查找数据慢树可以解决这两个问题二、相关术语树的结点:包含一个数据元素及若干指向子树的分支;孩子结点:结点的子树的根称为该结点的孩子;双亲结点:B结点是A结点的孩子,则A结点是B结点的双亲;兄弟结点:同一双亲的孩子结点;堂兄结点:同一层上结点;祖先结点:从根到该结点的所经分支上的所有结点子孙结点:以某结点为根的子树中*任一结点都称为该结点的子孙结点层:
FantJ
·
2020-03-17 01:38
栈的简单实现 数据结构没那么难
截图来自《
Java数据结构
和算法中文第二版》作者水图classXStack{publicintmaxSize;publicints
毛先森
·
2020-03-15 21:09
Java数据结构
与算法14——图(不带权)
1.图是什么图是一种用来描述多对多结构关系的数据结构,图中的每个顶点元素,可以有零到多个直接前驱元素,也可以有零到多个直接后继元素。图G由两个集合构成,记作G=(V,{A}),其中V是顶点的非空有限集合,A是边的有限集合,其中边是顶点的无序或有序对(对应的图称为无向图或有向图)现实生活中有很多都可以抽象成为图的结构,比如:1)交通图:顶点—地点;边—连接地点的路2)电路图:顶点—元件;边—连接元件
王侦
·
2020-03-14 21:48
Java数据结构
与算法-单链表 新浪,腾讯面试题详解
单链表常见的几个面试题新浪,腾讯内部面试题目题目分析代码实现测试用例一,面试题目统计链表中有效节点的个数(不含头结点)【新浪】获取链表中倒数第K个元素【新浪】单向链表的逆转【腾讯】二,题目分析第一题:我们可以获取链表的头结点后,然后进行遍历,设置一个变量进行计数,注意不要算上头结点。第二题:我们可以在第一题的基础上,在获取到了链表的长度后,只需要考虑倒数第K个节点是从前面开始第几个节点,我们就循环
@大美妞
·
2020-03-12 16:09
链表
算法
java
数据结构
面试
2016/1/31 周日
打扫14晚上1.1扫地1.2套被套1.3晾衣服电话14电话时候顾及到情形周六玩游戏忘记了打电话晚饭33晚餐吃的方便面,鸡蛋,煎鸡蛋,腊肠运动33运动的目的是放松身心数据结构33Java环境1.1
Java
B9班的真高兴
·
2020-03-07 06:21
Java数据结构
与算法_05 时间复杂度+常用排序算法 (冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、基数排序)
Java数据结构
与算法_05时间复杂度时间频度①忽略常数项②忽略低次项③忽略系数一些说明常见的时间复杂度①常数阶O(1)②对数阶O(log2n)③线性阶O(n)④线性对数阶O(nlog2N)⑤平方阶O(
只爭朝夕不負韶華
·
2020-03-06 23:03
Java数据结构与算法
java
数据结构
算法
Java数据结构
与算法(五)-双向链表
什么是双向链表每个结点除了保存了xui下一个结点的引用,同时还保存这对前一个节点的引用。从头部进行哈如要对链表进行判断,如果为空则这是尾结点为信添加的结点。如果不为空,还需要设置投结点的前一个结点为心田的结点。从尾部进行插入如果链表为空,则直接设置头结点为新添加的结点,否则设置尾结点的后一个结点为新添加的结点。同时设置新添加的结点的前一个结点为尾结点。从头部进行删除判断头结点是否有下一个结点,如果
FantJ
·
2020-03-03 07:54
Java数据结构
篇一:数组详解
[本篇参考地址见底]项目开发中,如果需要存储大量的数据,例如如果需要读取100个数,那么就需要定义100个变量,显然重复写100次代码,是没有太大意义的。Java语言提供了数组(array)的数据结构,可以解决这个问题。数组的概念一个数组是相同数据类型的元素按一定顺序排列的集合。使用数组可以将同一类型的数据存储在连续的内存位置。数组中各元素的类型相同,通过下标的方式来访问数组中的元素,下标从0开始
李树江
·
2020-03-02 16:34
Java基础
数据结构
数组
Java高级特性-难点汇总
Java数据结构
(Java2之前)(高级)Java工具包提供了强大的数据结构,主要是以下几种:枚举(Enumeration)位集合(BitSet)向量(Vector)栈(Stack)字典(Dictionary
田永威
·
2020-03-02 11:02
Java数据结构
和算法(五)——队列
前面一篇博客我们讲解了并不像数组一样完全作为存储数据功能,而是作为构思算法的辅助工具的数据结构——栈,本篇博客我们介绍另外一个这样的工具——队列。栈是后进先出,而队列刚好相反,是先进先出。1、队列的基本概念队列(queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为
IT可乐
·
2020-03-01 23:41
Java数据结构
与算法(七)-快速排序
一、快速排序思想快速排序由C.A.R.Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。二、如何进行划分&关键字的设定首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它
FantJ
·
2020-02-29 09:50
Java数据结构
之线性表
这篇文章我们来说说Java里一个很重要的数据结构——线性表,还是这张图,线性表对应着下图里的List。红框里的内容就是线性表的大家族了,其中黄色部分是要重点了解的,线性表里的元素是按线性排列的(这里的线性指逻辑上的)线性表分为两大类,分别是顺序表和链表:一、顺序表顺序表中的数据元素存储是连续的,内存划分的区域也是连续的。存储结构如下图:我们的ArrayList底层是数组实现的,底层元素在内存中是按
会飞嘚蜗牛
·
2020-02-28 20:16
java数据结构
之直接插入排序
直接插入排序(StraightInsertionSort)是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。在日常生活中,经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。例如:一组从小到大排好顺序的数据列{1,2,3,4,5,6,7,9,10},通常称之为有序列,我们用序号1,2,3,…表示数据的位置,欲把一个新的数据8插入
Cholechow
·
2020-02-28 18:49
Java数据结构
总结
一:通过一些源码展示各种数据结构的使用方法:1.顺序表概念及结构:顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改publicinterfaceISequence{ //在pos位置插入val booleanadd(intpos,Objectdata); //查找关键字key找到返回key的下标,没有返回null; intsear
凉白开dream
·
2020-02-26 22:13
Java常用数据结构
Java数据结构
——LinkedList源码简介
LinkedList是Java中的数据结构之一,即链表。本篇文章将从源码角度简单介绍LinkedList的基本实现原理。在阅读下面内容之前,请确保你已经了解链表的基本属性与特点,在此不会再做详细解释。本文只介绍链表的核心操作方法,如add、remove、get、set,其他一些不太常用的方法暂时跳过。简介:在Java中使用的LinkedList,是一个双向循环带头节点的链表。至于为什么是这样的链表
骚的掉渣
·
2020-02-26 20:54
Java数据结构
(二):线性表之顺序表
顺序表采用数组实现,并且通过继承AbstractList类,下图为顺序表的存储结构图:该图为顺序表的存储结构具体代码如下:【详见SequenceList.java】packagedatastructure.linear.sequence;importdatastructure.exception.StructureException;importdatastructure.linear.Abstr
locoder
·
2020-02-26 10:57
【蓝桥杯】必备的
java数据结构
和常用方法
文章目录一.线性表1.顺序表的实现静态数组动态数组2.链表的实现二.栈三.队列四.串StringStringStringBuffer和StringBuilder五.树和二叉树六.哈希表七.图邻接矩阵邻接表一.线性表1.顺序表的实现静态数组java只有在为数组分配变量时,可以声明数组长度java:int[]a;a=newint[3];//可以用变量但是java的数组是比较特殊的对象,所以需要借助别的
Junieson
·
2020-02-23 19:53
蓝桥杯
Java
数据结构
蓝桥杯
Java
Java数据结构
hashmap:用的是哈希表存储treemap:用的是红黑树arraylist:用的是动态数组结构linkedlist:链表+动态数组结构自己总结:list:数据可重复,不唯一,除了linkedlist采用的是链表结构,其他用的是动态数组结构set:中唯一不可重复,带link的就有链表结构带tree就是红黑树结构带hash就表明是哈希表结构,哈希表采用的是目录顺序存储+正文链式存储顺序存储特点挨着
zxcv1234uhuhiuh
·
2020-02-22 11:25
java数据结构
-栈.md
栈的定义和数据类型栈定义又称堆栈,一种运算受限的线性表,仅允许在表的一端进行插入和删除运算。对栈进行运算的一端称为栈顶,栈顶的第一个元素称为栈顶元素,相对地另一端称为栈底。栈的基本操作入栈publicEpush(Eitem){addElement(item);returnitem;}出栈pop()(要先判断非空)publicsynchronizedEpop(){Eobj;intlen=size()
Vinson武
·
2020-02-20 22:05
1、链表
这是一些我从《
java数据结构
和算法》中选出来的,需要记住的东西。
yjaal
·
2020-02-17 03:03
java数据结构
-排序算法-基数算法
packagecom.kuang;importjava.util.Arrays;/***@auther付强*@date2020/2/15-10:46*/publicclassRadixSort{publicstaticvoidmain(String[]args){int[]arr=newint[]{23,6,189,45,9,289,56,1,789,32,65,652,5};radixSort(
1350464730
·
2020-02-15 11:00
java数据结构
-排序算法-希尔算法
packagecom.kuang;importjava.util.Arrays;/***@auther付强*@date2020/2/15-9:12*/publicclassshellSort{publicstaticvoidmain(String[]args){int[]arr=newint[]{3,5,2,1,4,8,0,7,6};shellSort(arr);System.out.printl
1350464730
·
2020-02-15 09:00
Java数据结构
系列(1)——自平衡二叉树
1、基本概念所谓自平衡二叉树,就是当我们插入或删除元素之后,二叉树的高度会自动调整到最小,这样我们就可以在对数时间内查找二叉树内的元素。2、定义TreeSetset=TreeSetset=newTreeSetk){set.remove(nums[i-k]);}}returnfalse;}待续未完...
SupremeBoy
·
2020-02-14 21:00
java数据结构
-双向循环链表测试
packagecom.node;/***@auther付强*@date2020/2/14-13:46*/publicclassTestDoubleNode{publicstaticvoidmain(String[]args){//创建节点DoubleNoden1=newDoubleNode(1);DoubleNoden2=newDoubleNode(2);DoubleNoden3=newDoubl
1350464730
·
2020-02-14 19:00
java数据结构
-双向循环链表实现
packagecom.node;/***@auther付强*@date2020/2/14-13:32*/publicclassDoubleNode{//上一个节点(等于this)保证循环DoubleNodepre=this;//下一个节点DoubleNodenext=this;//节点数据intdata;publicDoubleNode(intdata){this.data=data;}//增加节
1350464730
·
2020-02-14 19:00
java数据结构
-循环链表实现测试
packagecom.node;/***@auther付强*@date2020/2/14-13:25*///循环链表测试publicclassTestLoopNode{publicstaticvoidmain(String[]args){LoopNoden1=newLoopNode(1);LoopNoden2=newLoopNode(2);LoopNoden3=newLoopNode(3);Loo
1350464730
·
2020-02-14 19:00
java数据结构
-循环链表实现
packagecom.node;/***@auther付强*@date2020/2/14-9:20*///一个节点//循环链表publicclassLoopNode{//节点内容intdata;//下一个节点(循环链表只需要加一个this即可)LoopNodenext=this;publicLoopNode(intdata){this.data=data;}//插入一个节点追加为找的当前节点的下一
1350464730
·
2020-02-14 19:00
java数据结构
-普通链表实现测试
packagecom.node;/***@auther付强*@date2020/2/14-9:25*///普通链表测试publicclassTestNode{publicstaticvoidmain(String[]args){//创建节点Noden1=newNode(1);Noden2=newNode(2);Noden3=newNode(3);Noden4=newNode(3);Noden5=n
1350464730
·
2020-02-14 19:00
java数据结构
-普通链表实现
packagecom.node;/***@auther付强*@date2020/2/14-9:20*///一个节点//普通链表publicclassNode{//节点内容intdata;//下一个节点Nodenext;publicNode(intdata){this.data=data;}//为节点追加节点publicNodeappend(Nodenode){//当前节点NodecurrentNo
1350464730
·
2020-02-14 19:00
java数据结构
-排序算法-插入算法
packagecom.kuang;importjava.util.Arrays;/***@auther付强*@date2020/2/14-19:02*/publicclassinsertSort{publicstaticvoidmain(String[]args){int[]arr=newint[]{11,3,2,53,2,5,9,1};insertSort(arr);System.out.pri
1350464730
·
2020-02-14 19:00
java数据结构
-排序算法-快排算法
packagecom.kuang;importjava.lang.reflect.Array;importjava.util.Arrays;/***@auther付强*@date2020/2/14-18:39*/publicclassquickSort{publicstaticvoidmain(String[]args){int[]arr=newint[]{3,4,11,1,0,6,4,8};//
1350464730
·
2020-02-14 18:00
java数据结构
-递归算法-简单递归算法
packagecom.digui;/***@auther付强*@date2020/2/14-14:00*///递归publicclassTestRecursive{publicstaticvoidmain(String[]args){print(5);}publicstaticvoidprint(inti){if(i>0){System.out.println(i);print(i-1);}}}
1350464730
·
2020-02-14 18:00
Java数据结构
与算法5——链表
1.什么是链表链表也是一种特殊的线性表,它由一系列结点组成,结点的顺序是通过结点元素中的指针链接次序来确定的。链表中的结点包含两个部分,一个是它自身需存放的数据,另一个是指向下一个结点的引用。链表和数组:1)都可作为数据的存储结构2)数组:固定长度、顺序存放3)链表:没有容量限制,非连续和非顺序的存储数据4)从效率上说,链表基本上完胜数组,这个在后面讲述每种链表的时候再分析5)基本上,能用数组的地
王侦
·
2020-02-14 07:27
Java数据结构
和算法(八)——递归
记得小时候经常讲的一个故事:从前有座山,山上有座庙,庙里有一个老和尚和一个小和尚,一天,老和尚给小和尚讲了一个故事,故事内容是“从前有座山,山上有座庙,庙里有一个老和尚和一个小和尚,一天,老和尚给小和尚讲了一个故事,故事内容......”什么是递归,上面的小故事就是一个明显的递归。以编程的角度来看,程序调用自身的编程技巧称为递归(recursion)。百度百科中的解释是这样的:递归做为一种算法在程
IT可乐
·
2020-02-11 09:24
问答3: 对《java学习路径是怎么样的?》的回答
关于java学习路线,个人建议如下:1.语言语法学习2.
java数据结构
及算法。
随风而行之青衫磊落险峰行
·
2020-02-11 02:03
Java数据结构
HashMap 源码阅读
HashMap数据结构简介HashMap就是数据结构中的散列表,是以key,value的形式进行存储数据的,数组具有查找定位快,但是插入操作性能差,链表具有查找慢插入快速的特点,而HashMap可以说是这两种方式的一种折中。HashMap采用数组与链表相结合的方式实现,如下图所示*HashMap会根据存储实体key的值确定存放在那个数组的链表上HashMap数据结构示意图(网络图,不知道原篇在哪没
PPB
·
2020-02-10 00:10
Android 面试准备进行曲(数据结构 Map / List)v1.1
Java数据结构
之HashMap重温学习1.HashMap2.hash()方法3.HashMap的put方法4.HashMap扩容2HashMap其他可能面试的问题2.1哈希表解决Hash冲突2.2键-
魔都_大白
·
2020-02-09 20:13
Java数据结构
与算法9——红黑树
1.平衡与非平衡树树的平衡树的平衡指的是:树中每个节点的左边后代的数目,应该和其右边后代的数目大致相等。对于随机数构成的二叉树,一般来说是大致平衡的,但是对于有序的数据,二叉树就严重不平衡了,极端情况下,退化成为链表,其时间复杂度下降到O(N),而不再是平衡树的O(logN)。2.红黑树是什么以及特征红黑树(R-BTree)是什么红黑树是一种增加了某些特性的二叉搜索树,它可以保持树的大致平衡。大致
王侦
·
2020-02-08 22:24
上一页
33
34
35
36
37
38
39
40
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他