
JavaSE&网络&数据结构
文章平均质量分 74
JavaSE&网络&数据结构
ohana!
欧哈纳!
展开
-
哈希表总结
目录引言一,哈希表概念1.概念2.初次简单模拟3.模拟总结二,哈希冲突(哈希碰撞)1.概念2.分析初步分析:避免冲突时的哈希函数设计:常见的哈希函数:3.解决1.闭散列2.开散列三,模拟实现哈希桶(开散列)模拟实现的准备工作1.定义哈希表中的结点2.构造方法3.哈希地址的计算方法1.操作之添加 / 插入2.操作之获取key的value3.操作 之key存在返回key对应的value,key不存在返回默认值4.操...原创 2021-11-30 00:35:28 · 2088 阅读 · 0 评论 -
优先级队列总结(2)
一,堆的应用1.PriorityQueue的实现优先级队列的底层就是用堆实现的2.利用堆的思想来进行堆排序建堆升序:建大堆 降序:建小堆利用堆删除的思想来进行排序堆删除的实现------将堆的根节点和最后一个节点进行交换,并将堆的有效元素的个数减“1“”,并对新的堆进行向下调整 排序的思想:将已经完成向下调整的根节点与最后一个结点交换位置,此时,新的堆一定不满足要求,重新进行向下调整,每次调整前将堆中的有效元素进行减“1“”的操作,直到结束3.代码实现步骤1.实现向下.原创 2021-11-11 14:02:34 · 429 阅读 · 0 评论 -
排序算法补充总结(非比较排序)
主要是计数排序,海量数据的处理原创 2021-11-18 00:51:56 · 385 阅读 · 0 评论 -
在IDEA上对链表oj题的测试方法
以链表的基本操作为栗子新建一个类(ListNode),里面包含两个成员变量,三个构造方法(不同的oj里面的方法略有不同,此处将三个都写出来,是为了可以反复使用)public class ListNode { int val; ListNode next; public ListNode(){ } public ListNode(int val){ this.val = val; } public ListNo.原创 2021-10-26 10:54:40 · 545 阅读 · 0 评论 -
队列(Queue)
一.概念只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头(Head/Front)二,队列的使用在Java中,队列是一个接口,底层是用双向链表实现的Boolean offer(E e) 入队列 E poll ...原创 2021-10-28 15:03:11 · 659 阅读 · 0 评论 -
栈(Stack)
一,概念一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则 栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶 栈的删除操作叫做出栈。出数据在栈顶二,栈的操作代码示例:public class MyStack { public static void main(String[] args) { Stack s =..原创 2021-10-25 15:17:03 · 300 阅读 · 0 评论 -
二叉搜索树
二叉搜索树的操作原创 2021-11-24 23:53:56 · 548 阅读 · 0 评论 -
PriorityQueue(优先级队列总结)
一,概念队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列 数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是优先级队列(Priority Queue)二,PriorityQueue的特性Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlo.原创 2021-11-08 20:42:43 · 2159 阅读 · 0 评论 -
七种常见的排序算法总结
目录引言1.什么是排序?2.排序算法的目的是什么?3.常见的排序算法有哪些?一,插入排序1.基本思想2.代码实现3.性能分析4.测试二,希尔排序(缩小增量排序)1.基本思想2.代码实现3.性能分析4.测试三,选择排序1.基本思想2.代码实现3.性能分析4.测试四,堆排序1.基本思想2.代码实现3.性能分析4.测试五,冒泡排序1.基本思想2.代码实现3.性能分析4.测试六,快速排序...原创 2021-11-14 20:13:51 · 2643 阅读 · 9 评论 -
二叉树(总结 & 基本操作)
一,树1.树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合,把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的2.树的特点有一个特殊的结点,称为根结点,根结点没有前驱结点 除根结点外,其余结点被分成M(M > 0)个互不相交的集合T1、T2、......、Tm,其中每一个集合 Ti (1 <= i<= m) 又是一棵与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继 树是递归定原创 2021-11-01 20:45:04 · 1434 阅读 · 1 评论 -
Map和Set
一,搜索1.概念和场景Map和set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有:直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢 二分查找,时间复杂度为 ,但搜索前必须要求序列是有序的上述排序比较适合静态类型的查找,即一般不会对区间进行插入和删除操作了 现实问题中的查找都存在动态查找的可能,因此,Map和Set是一种适合动态查找的集合容器2. 模型一般把搜索的数据称为关键字(Key),和关键字对应的原创 2021-11-23 12:43:31 · 1263 阅读 · 0 评论 -
网络基础2
目录一,网络设备及其技术1.集线器工作环境作用2.交换机工作环境作用3.主机工作环境作用4.主机&路由器作用5.路由器作用6.路由器功能总结二,冲突域概念构成三,广播域概念构成四,应用层重点协议1.DNS概念作用2.NAT3.NAPT4.HTTP/HTTPS一,网络设备及其技术1.集线器工作环境集线器时工作在物理层的网络设备作用发送到集线器的数据,都只是简单的将数原创 2022-04-15 14:37:15 · 1029 阅读 · 0 评论 -
网络数据传输流程
目录一,局域网传输流程1.集线器2.交换机3.交换机+路由器二,广域网数据传输流程主要过程一,局域网传输流程1.集线器主要过程源主机:从上到下封装,如果知道目的IP主机的MAC地址就直接封装在数据链路层的以太网帧头中,如果没有找到进行ARP寻址(相当于喊话)收到MAC地址后,封装好在发送 集线器给每一台主机都发,不同主机判断这个数据包是不是给自己的 目的主机进行从下到上的分用2.交换机主要过程源主机从上到下封装数据包中,如果知道目的IP主机的M.原创 2022-04-15 16:35:18 · 6331 阅读 · 0 评论 -
TCP&UDP协议
一,TCP协议1.TCP协议的格式2.TCP协议的特点1)有连接通过三次握手建立连接和通过四次挥手关闭连接2)可靠传输网络传输的方式,是通过一跳一跳的方式来传递数据的,期间可能发生数据丢失3)面向字节流在连接没有关闭之前,可以多次接收数据,也可以多次发送数据4)有接收缓冲区,也有发送缓冲区在确认应答机制和超时重传机制都会用到缓冲区 接收数据:在接收数据时,先将数据保存到接收缓冲区,再交给程序 发送数据:发送数据时,先写到发送缓冲区,然后再刷新缓冲区5)大小不原创 2022-04-19 12:39:58 · 1741 阅读 · 0 评论 -
网络原理初识(基础)
一,网络的划分1.局域网(LAN)局域网的组建(连接方式)2.广域网(WAN)二,网络通信基础1.IP地址2.端口号(port)3.五元组4.子网掩码5.MAC地址6.一跳一跳的网络传输三,协议1.认识协议2.协议分层分层的作用网络设备所在的分层3.OSI七层模型4.TCP/IP五层(四层)模型四,封装和分用1.封装2.分用...原创 2022-04-14 21:36:52 · 2855 阅读 · 0 评论 -
String类
一,字符串的构造(最常用的有三种方式) String s1 = new String("hello"); String s2 = "world"; char[] array1 = {'b','i','t'}; String s3 = new String(array1); System.out.println(s1); System.out.println(s2); System.out.原创 2021-10-30 16:37:06 · 235 阅读 · 0 评论 -
Java -- 接口
一,概念接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。 在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。二,语法public interface IInterface { //这就是接口的实现语法 //抽象方法}注意事项:创建接口时, 接口的命名一般以大写字母 I 开头. 接口的命名一般使用 "形容词" 词性的单词. 阿里编码规范中约定, 接口中的方法和属性不要加任何修饰符号, 保持代码的简洁性三,接..原创 2021-10-07 19:35:54 · 208 阅读 · 0 评论 -
Java特性---多态和抽象
特性之多态一,概念形象点说就是同一个行为由不同的人或事物执行所产生的不同的状态二,实现条件必须是在继承体系下 派生类必须对基类中的方法进行重写 必须是通过基类的引用调用重写的方法三,代码实现(以不同的人群购票为例)假设三个常见群体成人全票 学生半票 军人免票1.编写买票基类public class BuyTicket { public String name; public BuyTicket(String name) { ..原创 2021-10-05 10:19:01 · 294 阅读 · 0 评论 -
Java的特性--封装和继承
特性之封装一,概念将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互二,实现途径Java中主要通过类和访问权限来实现封装:类可以将数据以及封装数据的方法结合在一起,更符合人类对事物的认知,而访问权限用来控制方法或者字段能否直接在类外使用最常用的就是通过四中访问限定符(public protected default private)具体访问权限如上图(当我们不写修饰符时,系统默认为default)三,封装的...原创 2021-09-27 21:43:20 · 179 阅读 · 1 评论 -
包+static成员+代码块+内部类
一,包为了更好的管理类,把多个类收集在一起成为一组,成为软件包。通俗一点说,就相当于我们平时把衣服都放在衣柜里原创 2021-09-15 17:12:38 · 144 阅读 · 0 评论 -
This引用和对象的构造以及初始化
一,this引用java编译器给每个成员方法增加了一个隐藏的引用类型参数,该参数指向当前对象(即就是成员方法运行时调用该成员方法的对象),该引用存在于所有成员方法中对成员变量的操作,对于用户来说是不需要添加的,编译器自动完成相应的操作...原创 2021-09-14 21:02:04 · 333 阅读 · 0 评论 -
类和对象(1)
类的定义和使用1.定义类的格式在java中定义类时需要用到class关键字// 创建类class ClassName{ field; // 字段(属性) 或者 成员变量 method; // 行为 或者 成员方法}class为定义类的关键字,ClassName为类的名字,{}中为类的主体。类中包含的内容称为类的成员。属性主要是用来描述类的,称之为类的成员属性或者类成员变量。方法主要说明类具有哪些功能,称为类的成员方法。2.类的实例化示例1:定义一个洗衣原创 2021-08-29 16:54:58 · 151 阅读 · 0 评论 -
Java冒泡排序
给定一个数组, 让数组升序 (降序) 排序.算法思路 ----假设排升序:1. 将数组中相邻元素从前往后依次进行比较,如果前一个元素比后一个元素大,则交换,一趟下来后最大元素就在数组的末尾2. 依次从上上述过程,直到数组中所有的元素都排列好public static void main(String[] args) { int[] array = {10,7,6,11,22,33,15,20,25}; for (int i = 0; i < array.l.原创 2021-08-28 17:20:54 · 130 阅读 · 0 评论 -
二分查找(两种)
在二分查找中,有一个关键点,就是关于传入方法当中的数组长度是否-1,其影响在代码编写过程中的边界问题1.数组长度 - 1public static int binarySearch(int[] array,int n){ int left = 0; int right = array.length - 1; while(left <= right){ int mid = (left + right) / 2; .原创 2021-08-28 16:31:23 · 140 阅读 · 0 评论 -
获取斐波那契数列的前N项(以数组的方式)
数组是引用类型,所以不同于基本类型的是,在方法内部修改数组的内容, 方法外部的数组内容也发生改变,按照引用类型来进行传递,是可以修改其中存放的内容的public class ArrayTest { //获取斐波那契数列前n项 public static long[] fib(int n){ if (n <= 0){ return null; } long[] arr = new long[n];原创 2021-08-28 15:52:29 · 2037 阅读 · 0 评论 -
JavaSE-->数组
一,数组的概念:数组是相同类型元素的一个集合 在内存中是一段连续的空间 每个空间有自己的编号,其位置编号从0开始,即就是数组的下标二,数组的创建1.数组 T [ ] 数组名 = new T [ N ] ; T:表示数组中存放元素的类型 T [ N ] :表示数组的类型 N:表示数组的长度 举个例子:int [ ] array1 = new int [10] //创建一个可以容纳10个int类型元...原创 2021-08-27 13:08:56 · 147 阅读 · 0 评论 -
关于Java
目录1.初识Java2.Java的特性3.Java的基本表示,书写方法4.Java的学习1.初识JavaJava是一种优秀的程序设计语言,不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。在语言的使用范围内,Java的人气也是居高不下,这么火爆的语言自然应用范围也是非常广的,比如企业级系统,web开发领域,Android平台应用,大数据平台开发游原创 2021-08-24 22:49:17 · 172 阅读 · 0 评论