本笔记意在巩固数据结构相关知识,详细具体的数据结构知识请查询具体资料
数组前言数组只是个名称,它可以描述一组操作,也可以命名这组操作。数组的数据操作,是通过 idx->val 的方式来处理。它不是具体要求内存上要存储着连续的数据才叫数据,而是说,通过连续的索引 idx,也可以线性访问相邻的数据。那么当你定义了数据的存储方式,也就定义了数据结构。所以它也是被归类为数据结构。
特点
数组是相同数据类型的集合(int 中不能存放 double)
数组中的各元素的存储是有先后顺序的,它们在内存中按照这个数据结构连续存放在一起。内存地址连续。
数组获取元素的时间复杂度为O(1)
相关的代码实现List.java
123456789101112package array_list;public interface List<E> { boolean add(E e); E remove(int index); E get(int index);}
ArrayListTest.java
123456789101112131415161 ...
链表的数据结构简介链表是一种常见的数据结构,它通过节点(Node)来存储元素,并使用指针或引用将这些节点链接在一起。链表的主要优点是插入和删除操作非常高效,因为它不需要移动其他元素。
Java中LinkedList使用的链表类型
双向链表:Java中的LinkedList实现基于双向链表。这意味着每个节点不仅知道下一个节点的地址,还知道前一个节点的地址。这种设计使得从列表两端进行插入和删除操作都同样高效。
链表的基本操作及其时间复杂度
插入
在给定位置插入元素的时间复杂度为O(n),因为可能需要遍历链表找到正确的插入点。
但在头尾插入时,由于LinkedList是双向链表,所以时间复杂度为O(1)。
删除
删除特定值的元素通常需要遍历链表以找到该元素,因此时间复杂度为O(n)。
如果已经知道了要删除的节点的位置,则可以在O(1)时间内完成删除。
获取元素
获取指定索引处的元素需要遍历链表直到找到目标位置,这导致了O(n)的时间复杂度。
使用链表的最佳场景
当你的应用程序频繁地在列表中间执行插入或删除操作时,链表是一个很好的选择。这是因为数组在这种情况下效率较低,因为它需 ...
Java8 新特性之前一直知道有 Java8 的新特性,包括 lambda 表达式,函数式接口,Stream API,Optional 处理的容器。这些内容有的使用过,但是都是一知半解,这里进行系统的学习一下。
Lambda 表达式 (Lambda Expressions)这是 Java 8 最具标志性的新特性。
是什么? Lambda 表达式,可以理解为 一段可以被传递的代码,或者说是一个 匿名函数。它允许你将一个函数作为方法的参数进行传递。
为什么需要它? 在 Java 8 之前,如果你想传递一段代码逻辑(比如一个排序规则),你必须创建一个实现了特定接口的匿名内部类的实例。代码非常冗长和笨重。Lambda 表达式极大地简化了这种写法。
怎么用? Lambda 表达式的核心语法是 (parameters) -> expression 或 (parameters) -> { statements; }。
parameters: 方法的参数列表。
->: Lambda 操作符,读作 “goes to”。
expression 或 statem ...
本笔记记录了本人在学习 MySQL 的过程中的学习笔记,由本人学习之后提取视频内容而做。
【黑马程序员 MySQL 数据库入门到精通,从 mysql 安装到 mysql 高级、mysql 优化全囊括】 https://www.bilibili.com/video/BV1Kr4y1i7ru
MySQL 基础篇通用语法及分类
DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)
DML: 数据操作语言,用来对数据库表中的数据进行增删改
DQL: 数据查询语言,用来查询数据库中表的记录
DCL: 数据控制语言,用来创建数据库用户、控制数据库的控制权限
DDL(数据定义语言)数据定义语言
数据库操作查询所有数据库:SHOW DATABASES;查询当前数据库:SELECT DATABASE();创建数据库:CREATE DATABASE [ IF NOT EXISTS ] 数据库名 [ DEFAULT CHARSET 字符集] [COLLATE 排序规则 ];删除数据库:DROP DATABASE [ IF EXISTS ] 数据库名;使用数据库:USE 数据库名;
注意事项
...
JavaWeb事务进阶-propagation
事务传播行为:指的就是当一个事务办法被另外一个实物办法调用时,这个事务方法应该如何进行事务控制
REQUIRED: 默认值- 需要事务,有则加入,无则创建新事务
REQUIRES_NEW: 需要新事务,无论有无,总是创建新事务
123456@Transactional(propagation = Propagation.REQUIRES_NEW) // 这个方法在新的事务中创建并提交@Overridepublic void insertLog(EmpLog empLog) { empLogMapper.insert(empLog);}
文件上传简介
将我们的文件上传到服务器,供其他用户浏览或下载的过程
比如发微博和发朋友圈
前端代码示例
后端代码12345678910111213141516171819202122232425262728293031/** * @author Wiretender * @version 1.0 */package com.itheima.controller;import ...
ACL(Access Control List)
访问控制列表 用来实现数据包识别功能。
ACL 应用在接口上,每个接口的出入双向分别过滤。
仅当数据包经过一个接口时,才能被此接口的此方向的 ACL 过滤。
通配符掩码
通配符掩码和 IP 地址结合使用以描述一个 地址范围
通配符掩码的匹配规则:
0 表示对应位需比较
1 表示对应位不比较
ACL 的标识
基本 ACL
基本访问控制列表只根据报文的 源 IP 地址信息 制定规则
二层 ACL
二层 ACL 根据报文的源 MAC 地址、目的 MAC 地址、802.1p 优先级、二层协议类型等二层信息制定匹配规则
用户自定义 ACL 可以根据任意位置的任意字串制定匹配规则
报文的报文头、IP 头等为基准,指定从第几个字节开始与掩码进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文。(IDS)
配置 ACL 包过滤
1234567891011121314151617181920212223242526272829303132333435开启防火墙[sysname] firewall ...
Exception 异常123456789101112131415161718192021222324252627package com.hspedu.exception_;import java.util.Scanner;public class Test { public static void main(String[] args) { // 创建 Scanner 对象 Scanner scanner = new Scanner(System.in); int num = 0; String inputStr = ""; while(true) { System.out.println("Please input a Integer"); inputStr = scanner.next(); try { num = Integer. ...
Java 学习笔记对象的成员方法 当程序执行到方法时,就会开辟一个独立的空间(栈空间)
1234567891011121314151617181920212223242526272829303132333435363738394041424344package javahsp.day04;public class Method01 { public static void main(String[] args) { Person wangXinNuo = new Person(); wangXinNuo.speak(); wangXinNuo.cal01(); wangXinNuo.cal02(10); }}class Person { String name; int age; // 1.public 公开方法 // 2. void 无返回值 // 3. speak 方法名 () 形参列表 // 4. {} 方法体 要执行的代码 public void speak() { System.out. ...
Java 学习笔记bool 类型12345678910public class Boolean01 { public static void main(String[] args) { boolean isPass = true; if (isPass == true) { System.out.println("考试通过, 恭喜!"); } else { System.out.println("考试没有通过, 下次努力"); } }}
自动类型转化123456789101112131415161718192021222324252627282930313233package day01;public class AutoConvertDetail { public static void main(String[] args) { // 有多重类 ...
飞机降落(十四届真题)[P9241 蓝桥杯 2023 省 B] 飞机降落 - 洛谷
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#include <cstring>#include <algorithm>#include <unordered_set>#include <iostream>#include <bitset>#define io ios::sync_with_stdio(0), cin.tie(0)#define ll long longusing namespace std;const int N = 15;int n;int t[N], d[N], l[N];bitset<N> vis;/* 初始状态 (time=0) ├─ 选择飞机1 (新time=max(0,t1)+l1) │ ...














![数据结构 - [Array]](http://img.wiretender.top/img/20250330181902863.webp?_r_=2f5d5393-750c-4b9b-2a9a-5ba9fbc21e9c)
![数据结构 - [LinkedList]](http://img.wiretender.top/img/20250330161639408.webp?_r_=0ce4a47c-cb64-129a-d000-ac3dce5a419c)


