当前位置: 首页 > news >正文

Java 08集合

集合

Collection

接口,不可以创建对象add  
clear
remove
contains(Object obj);判断是否存在
isEmpty 空返回为true
size

ArrayList

Collection<String> c=new ArraryList<>();
以多态的方法创建集合对象,调用单列集合中的共有方法
编译看接口,运行看实现类对象
*注意或者说提醒一下,需要先看父亲有没有这个类
remove
对于基础数据类型,之间删除即可
如果是对象放入进行删除,那么我们需要重写一下equals方法,因为之前的,我是通过地址进行删除的
contain
同理,也需要重写equals方法;因为也需要判断一相等时怎么进行判断的

集合通用的遍历方式

迭代器遍历

Collection<student> c=newArrayList<>();
c.add("","");
Iterator<student> it=c.iterator();
it.next();//获取下一个对象//遍历的方法,如下
student s1=it.next();
//next方法会将指针指向下一位
while(it.hasNext()){student s=it.next();System.out.println(s);
}
也可以是下面这种

在这里插入图片描述

警告

next一定要仅仅调用一次,因为调用一次,指针就会向下移动一个

增强for循环

for(元素的数据类型 变量名:数组或者数据){}
for(student it:c){
//这样就可以进行遍历了
}

foreach循环

c.foreach();
c.foreach(@Overridepublic void accept(Student stu){}
)

List

存储有序
有索引
可以储存重复的
ArrayList
LinkedList;

一些API

add
add(int index ,E 对象)
remove
remove(int index);删除下标
也可以手动装箱
remove(Integer.valueof(111));
set
set(int index,E 对象);设置某个地方的元素为指定的对象
get
get(int index);获取某个地方的返回值
遍历
除了Collection那几个以外;
还可以for(int i=0;i<arr.size();i++){int x=arr.get(i);
}
ListIterator<String> it=arr.listIterator();
while(){
//即可}特殊的,我也可以进行逆向遍历
while(it.hasPrevious()){
int x=it.precious();
}
//需要注意的一点,由于刚产生的指针指向的是最前面,所以如果想倒序遍历的化,需要先来个正序遍历使得指针指向最后
并发修改异常
使用迭代器遍历集合的过程中,调用了集合对象的添加,删除方法,就会出现此异常解决方式:使用迭代器自己的删除和添加的方法,it.remove();
//添加方法只有list独有!!!!!Listiterator
it.add("asw");即可倒数第二个删除没事,原因自己想想即可

数据结构

一种计算机底层存储、组织数据的方式,是指数据相互之间是以什么方式排列在一起的

跟c++一样
后进先出

队列

后进后出,
先进先出

数组

查询速度快
增删效率低

链表

在这里插入图片描述

增删相对快因为只需要改地址
查询慢一点

在这里插入图片描述

二叉查找树
又称之为二叉排序树或者是二叉搜索树
左子树上的值都小于当前节点
右子树上的值都大于当前节点存入数据的时候,大的存到右边,小的存到左边弊端:如果是一个递增的序列,存入的时候就会成为单链,就成为了瘸子树
平衡二叉树
任意节点的左右子树的高度差不超过1
当你传入一个数据的时候,他不再是平衡二叉树,就会进行旋转,
旋转
从添加的节点开始,不断往父亲节点找到不平衡的节点

在这里插入图片描述
在这里插入图片描述

左左
当根节点的左子树有节点插入,导致二叉树不平衡,
就需要进行右旋转
左右
当根节点的左子树的右子树有节点插入,导致二叉树不平衡
先局部左旋,再进行右旋
右右
同理
右左
同理

红黑树

自平衡的一类二叉查找树,
每一个节点可以是黑色或者红色,红黑树不是高度平衡的,他的平衡是通过红黑规则进行实现的

特点规则

不写了,累的上

在这里插入图片描述

添加节点的规则

在这里插入图片描述

默认是红色存入,在进行颜色的改变,效率更高

ArrayList

原理

底层是数组写过,就是扩容1.5倍
当然,如果我光创建了ArrayList但是没有添加任何元素,那么实际上底层就是长度为0
说一下,是底层代码扩容,实际上的length是没有进行改变的

LinkedList

在这里插入图片描述

原理

底层是链表
有一点点像c++中的双端队列删除增加比较简单,但是查询的时候是从头遍历或者从尾巴遍历;
get

泛型

jdk5版本进行引入,可以在编译阶段约束操作的数据类型,并且进行检查
泛型的默认的类型是obje

好处

1.统一数据类型
2.将运行期的错误提升到了编译期
ArrayList<String>arr=new ArrayList<>();
ArrayList brr=new ArrayList();//相当于object,可以加入任意类型·

泛型类

常见的泛型标识符号E V K T
E:Element
T:Type
K:Key
V:Value
当你不知道想要什么数据类型的时候,就可以写个泛型,让使用对象自己去判断什么时候确定为什么类呢:当你创建对象的时候

在这里插入图片描述

泛型方法

1.非静态方法:内部的泛型,会根据类的泛型去进行匹配
2.静态的方法:因为static需要在创建对象的时候就会进行创建,那么就得去提前申请出自己的类型,例如:
调用方法,传入具体参数的时候就会确定类型
public static<T> void printadd(T []arr){}

泛型接口

接口也可以进行创建泛型
例如
interface Inter<T>{}
1.实现类,实现接口的时候确定具体的类型
2.实现类实现接口,但是没有确定具体的类型,就让接口的泛型,跟着类的泛型去匹配

在这里插入图片描述

泛型通配符

?
问号就是通配符
例如传入ArrayList<?> list;
?:任意类型
?extends E :指的是E和E的所有的子类
?super E:指的是E和E的所有的父类

在这里插入图片描述

可以使用?继承e,也就是可以传入e和e的子类
也可以传入super,需要传入他自己或者他的父亲类

TreeSet

排序,去重,
底层红黑树操作

操作

TreeSet<String> ts=new TreeSet<>();
ts.add("sdfa");

自定义对象排序加去重

在这里插入图片描述

public class student implements Comparable<student> {//@Overridepublic int compareTo(student o) {//0 只有一个数据if(o.id==this.id){return 0;}//1 正序排列if(o.id>this.id){return 1;}//-1 倒叙排列return -1;//****也可以return this.id-o.id;//升序排列this-o}
}首先需要继承Comparable接口,
该接口需要带着需要的实现类,加入需要比较的实现类即可
重写里面的compareTo方法,进行比较即可
就是自定义比较排序即可
但是需要注意的是,一定要进行比较才可以

String

对于String而言
String a="a";
String b="b";
a.compareTo(b);

比较器排序

构造方法中,传入一个Compartor接口

在这里插入图片描述

构造器的优先级要高于自然排序

在这里插入图片描述

对于数组进行操作的的时候,对于int而言,应该写他的对象Integer进行排序才可以
仅限于这样创建的数组

HashSet

采取hash表存数据
HashSet<student> arr=new HashSet<>();
哈希表是一种对增删改查数据性能都比较好的结构

去重

要想进行去重,需要重写hashCode和equals才可以

原理

首先存入的数据,会调用对象的hashCode方法计算出一个应该存在的索引位置,查看该位置上是否存在元素
不存在:直接存
存在:调用equals方法,比较数据的内容,放在他的下面所以我们需要尽量让hashCode的返回值尽量不同,否则时间复杂度就到达了n方
可以这样Object.hash(age,ss)

在这里插入图片描述

	只能让hash值的重复值降低,但是不能完全避免完全不一样,所以需要调用equals方法进行比较才可以

底层原理

jdk7即之前

在这里插入图片描述

jdk8及之后
1.创建HashSet集合,内部回存在一个长度为16个大小的数组
public HashSet(){map= new HashMap<>();//默认创建因子为0.75;
}
2.调用集合的添加方法,会调用对象的hash值去取余数组的长度及16

在这里插入图片描述

	为什么要进行右移16位呢,因为将hash值转化为2进制之后,会发现最后几位的值相同的比较多,所以我们会右移16位进行hash扰动,在对之前的值进行异或操作,进行二次hash,那么的道德hash值的答案就会比较散,就不会出现大部分数据储存到一个下表的情况

在这里插入图片描述

这俩结果算出来是一样的
因为并运算的效率会更高
如何提高性能呢?
1.扩容数组
A:当数组的元素个数到达了16*0.75(加载因子)=12;
扩容到原数组的2倍的大小//是两倍!!
B:链表一个上面挂着的元素超过了8(阈值)个,并且数组长度没有超过64;
**注意哈,实际上就是他底层代码自己改变2.链表转红黑树
链表的长度超过了64了,并且挂着的元素超过了8个

在这里插入图片描述

LinkedHashSet

特点

去重,并且包装存储数据顺序,没有索引
LinkedHashSet<String> arr=new LinkedHashSet<>();

原理

依然是哈希表,只是每个元素又额外多了一个双链表的机制记录存储的孙旭

Collection工具类

可变参数

例如
public static int getSum(int ... nums){//这边的nums实际上就是个数组int sum=0;for(int a:nums){sum=sum+a;}return sum;
}注意一下,可变参数需要放到最后,否则处于他前面的数据就会被全部吃掉

作用

并不属于集合,是用来操作集合的工具

在这里插入图片描述

Collection是对象
Collections是工具

双链集合

TreeMap 
HashMap
LinkedHashMap

Map接口

Map集合是一种双列集合,每个元素包含两个数据
Map集合的元素的格式key=velue(键值对元素)
key键:不允许重复
velue值:允许重复
键和值是一一对应的,每个键只能找到自己的对应的值
key+value这个整体,我们称之为键值对或者是键值对对象
在Java中使用Entry对象表示

常用的API

Map<Integer,Integer> map = new HashMap<>();
get
get(Key);
获取key下面的值
put
map.put(1,2);//也可以进行修改,返回值是之前的value
map.put(key,value);
remove
map.remove(key);//根据键值删除数据,返回的也是之前这个键值对应的value
clear
map.clear();//清空map
containsKey
map.containsKey(Object key);
查看是否存在这个数据
containsValue
map.containsValue(Object Value);
查看是否存在这个值
isEmpty
判断集合是否为空
size
返回键值对的个数

集合的常用的遍历

1.通过键找值
HashMap<String,String> map=new HashMap<>();
Set<String>keyset=map.keySet();
//获得所有的键
for(String now:keyset){String x=map.get(now);
}
2.通过键值对对象遍历
Set< Map.Entry<String,String> > arr = map.entrySet();
//拿到了所有的对象
for( Map.Entry<String,String> now:arr){String x1=now.getKey();String x2=now.getValue();//这样就可以获得了
}
3.通过foreach方法
map.foreach(new BiComsumer<String,String>(){@Overridepublic void accept(String key,Strign value){//获得了key和value}})

HashMap

哈希表
键唯一
需要重写HashCode和equals方法

TreeMap

红黑树
键排序
需要自定义Comparator或者是implements Comparable接口(重写compareTo方法)

LinkedHashMap

哈希表+双向链表
键唯一,可以保证存取顺序
也需要重写HashCode和equals方法

相关文章:

Java 08集合

集合 Collection 接口&#xff0c;不可以创建对象add clear remove contains(Object obj);判断是否存在 isEmpty 空返回为true sizeArrayList Collection<String> cnew ArraryList<>(); 以多态的方法创建集合对象&#xff0c;调用单列集合中的共有方法 编译看…...

CSS 背景全解析:从基础属性到视觉魔法

CSS 背景属性用于定义HTML元素的背景。 CSS 属性定义背景效果: background-color background-image background-repeat background-attachment background-position 一、background-color&#xff1a;背景颜色 作用&#xff1a;设置元素的背景色&#xff0c;支持所有合法…...

2025华为OD机试真题+全流程解析+备考攻略+经验分享+Java/python/JavaScript/C++/C/GO六种语言最佳实现

华为OD全流程解析&#xff0c;备考攻略 快捷目录 华为OD全流程解析&#xff0c;备考攻略一、什么是华为OD&#xff1f;二、什么是华为OD机试&#xff1f;三、华为OD面试流程四、华为OD薪资待遇及职级体系五、ABCDE卷类型及特点六、题型与考点七、机试备考策略八、薪资与转正九、…...

中小型制造业信息化战略规划指南

1 引言 在当今技术飞速发展和全球竞争日趋激烈的时代&#xff0c;信息化建设对于中小型制造企业&#xff08;SME&#xff09;而言&#xff0c;已不再是可有可无的选项&#xff0c;而是关乎生存、发展和保持持续竞争力的核心要素。在数字化浪潮席卷全球的背景下&#xff0c;制造…...

PowerBI 矩阵实现动态行内容(如前后销售数据)统计数据,以及过滤同时为0的数据

我们有一张活动表 和 一张销售表 我们想实现如下的效果&#xff0c;当选择某个活动时&#xff0c;显示活动前后3天的销售对比图&#xff0c;如下&#xff1a; 实现方法&#xff1a; 1.新建一个表&#xff0c;用于显示列&#xff1a; 2.新建一个度量值&#xff0c;用SELECTEDVA…...

在QT中栅格布局里套非栅格布局的布局会出现父布局缩放子布局不跟随的问题

这个是 Qt Designer 设计界面中的一个“常见陷阱”。 &#x1f9e0; 结论先说&#xff1a; 在 Qt Designer 中使用栅格布局&#xff08;Grid Layout&#xff09;嵌套其他栅格布局&#xff0c;一般不会出问题&#xff0c;但如果嵌套的是水平布局&#xff08;HBox&#xff09;或垂…...

Pydantic数据验证实战指南:让Python应用更健壮与智能

导读&#xff1a;在日益复杂的数据驱动开发环境中&#xff0c;如何高效、安全地处理和验证数据成为每位Python开发者面临的关键挑战。本文全面解析了Pydantic这一革命性数据验证库&#xff0c;展示了它如何通过声明式API和类型提示系统&#xff0c;彻底改变Python数据处理模式。…...

深度解析 HDFS与Hive的关系

1. HDFS 和 Hive 如何协同 我们将从 HDFS&#xff08;Hadoop Distributed File System&#xff09; 的架构入手&#xff0c;深入剖析其核心组成、工作机制、内部流程与高可用机制。然后详细阐述 Hive 与 HDFS 的关系&#xff0c;从执行流程、元数据管理、文件读写、计算耦合等…...

ArrayList源码分析

1. ArrayList默认初始化容量 首先编写一个简单的初始化ArrayList的代码 List<String> li new ArrayList<>();然后进入ArrayList中&#xff0c;在无参数构造方法中可以查看到上面的绿色注释中写了构造一个空的集合并且初始化容量为10。接下来继续查看源码&#x…...

文件操作和IO-2 使用Java操作文件

Java操作文件的API 1、针对文件系统的操作。包括但不限于&#xff1a;创建文件、删除文件、重命名文件、列出目录内容…… 2、针对文件内容的操作。读文件/写文件 Java中针对文件的操作&#xff0c;使用File类来进行操作&#xff0c;这个类被存储在java.io这个包里面。 i&a…...

day 31

文件的拆分 1. 项目核心代码组织 src/&#xff08;source的缩写&#xff09;&#xff1a;存放项目的核心源代码。 2. 配置文件管理 config/ 目录&#xff1a;集中存放项目的配置文件&#xff0c;方便管理和切换不同环境&#xff08;开发、测试、生产&#xff09;的配置。 …...

基于Python批量删除文件和批量增加文件

一、为什么写这么一个程序 其实原因也是很简单的&#xff0c;我去网上下载了一个文件夹&#xff0c;里面太多别人的文件了&#xff0c;我不喜欢&#xff0c;所以我就写了这么一个代码。 二、安装Python和vscode 先安装Python在安装vscode Python安装 vscode的安装 三、源码…...

【信息系统项目管理师】第12章:项目质量管理 - 26个经典题目及详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第…...

ShenNiusModularity项目源码学习(27:ShenNius.Admin.Mvc项目分析-12)

订单列表页面用于浏览、检索、维护商城模块的订单信息。订单列表页面的后台控制器类OrderController位于ShenNius.Admin.Mvc项目的Areas\Shop\Controllers内&#xff0c;页面文件位于同项目的Areas\Shop\Views\Order内&#xff0c;其中Index.cshtml页面为主页面&#xff0c;Det…...

(T_T),不小心删掉RabbitMQ配置文件数据库及如何恢复

一、不小心删除 今天是2025年5月15日&#xff0c;非常沉重的一天&#xff0c;就在今早8点左右的时候我打算继续做我的毕业设计&#xff0c;由于开机的过程十分缓慢&#xff08;之前没有&#xff09;&#xff0c;加上刚开机电脑有卡死的迹象&#xff0c;再加上昨天晚上关电脑前…...

【Python装饰器深度解析】从语法糖到元编程实战

目录 🌟 前言🏗️ 技术背景与价值🩹 当前技术痛点🛠️ 解决方案概述👥 目标读者说明🧠 一、技术原理剖析📊 核心概念图解💡 核心作用讲解🔧 关键技术模块说明⚖️ 技术选型对比🛠️ 二、实战演示⚙️ 环境配置要求💻 核心代码实现案例1:基础计时装饰器案…...

操作系统学习笔记第5章 (竟成)

目录 第 5 章 输入 / 输出 (I/O) 管理 5.1 I/O 管理基础 5.1.1 I/O 设备 1.I/O 设备的基本概念 2.I/O 设备的分类 3.I/O 接口 4.I/O 端口 (1) I/O 端口的概念 (2) I/O 端口的编址 ① 独立编址方式 ② 统一编址方式 5.1.2 I/O 控制方式 1. 程序查询方式 2. 程序中断方式 3. DMA …...

【DCGMI专题1】---DCGMI 在 Ubuntu 22.04 上的深度安装指南与原理分析(含架构图解)

目录 一、DCGMI 概述与应用场景 二、Ubuntu 22.04 系统准备 2.1 系统要求 2.2 环境清理(可选) 三、DCGMI 安装步骤(详细图解) 3.1 安装流程总览 3.2 分步操作指南 3.2.1 系统更新与依赖安装 3.2.2 添加 NVIDIA 官方仓库 3.2.3 安装数据中心驱动与 DCGM 3.2.4 服务…...

C# 使用 OpenCV 基础

一、C#安装OpenCV 安装上面两个模块 二、使用 导入 using OpenCvSharp;加载图片 // 导入图片 Mat image Cv2.ImRead("C:\x5.bmp"); // 拷贝 Mat image2 image.Clone();// 打开窗口 Cv2.NamedWindow("image", WindowFlags.AutoSize); // 显示图片 Cv2…...

如何解决全局或静态变量被修改的bug

问题卡死 程序原来设置Firware name 时N32G475&#xff0c;在程序运行时&#xff0c;程序崩溃&#xff0c;发现输出的固件名称没有了&#xff0c;这里说明固件名称被程序修改了 程序在开机时都是对的 打开map文件查找fw_name的内存地址&#xff0c;他的值被更改&#xff0c;就…...

[Java实战]Spring Boot整合Sentinel:流量控制与熔断降级实战(二十九)

[Java实战]Spring Boot整合Sentinel&#xff1a;流量控制与熔断降级实战&#xff08;二十九&#xff09; 一、Sentinel简介 Sentinel是阿里开源的分布式系统流量防卫组件&#xff0c;核心功能包括&#xff1a; 流量控制&#xff1a;根据QPS、线程数等指标限制资源访问熔断降…...

Linux系统中,Ctrl+C的运行过程是什么?

文章目录 前言1.终端驱动捕获键盘输入2.信号发送到前台进程组3. 进程处理信号4. 信号传递的详细流程5. Shell 的后续处理关键机制说明扩展&#xff1a;其他相关信号总结 前言 今天看到有个小伙伴面试问到这个问题&#xff0c;感觉挺有意思&#xff0c;我们后端开发者相信都用过…...

101个α因子#9

((0 < ts_min(delta(close, 1), 5)) ? delta(close, 1) : ((ts_max(delta(close, 1), 5) < 0) ? delta(close, 1) : (-1 * delta(close, 1))))worldquant brain平台上调整后的语法&#xff1a; ((0 < min(close-ts_delay(close, 1), ts_delay(close, 1)-ts_delay(c…...

DAY28 超大力王爱学Python

知识点回顾&#xff1a; 类的定义pass占位语句类的初始化方法类的普通方法类的继承&#xff1a;属性的继承、方法的继承 作业 题目1&#xff1a;定义圆&#xff08;Circle&#xff09;类 import mathclass Circle:def __init__(self, radius1):self.radius radius # 半径属性…...

【C++算法】70.队列+宽搜_N 叉树的层序遍历

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a; 题目链接&#xff1a; 429. N 叉树的层序遍历 题目描述&#xff1a; 解法 使用队列层序遍历就可以了。 先入根节点1。queue&#xff1a;1 然后出根节点1&#xff0c;入孩子节点2&#xff0c;3&a…...

常用UI自动化测试框架

&#x1f50d; 常用UI自动化测试框架全览&#xff08;Web / 移动 / 桌面 / AI驱动&#xff09; UI&#xff08;用户界面&#xff09;测试框架是一类用于自动化测试应用图形界面的工具&#xff0c;帮助开发者和测试人员验证界面元素的功能性、交互性和视觉一致性。本文系统梳理了…...

C语言指针深入详解(五):回调函数、qsort函数

目录 一、回调函数 1、使用回调函数改造前 2、使用回到函数改造后 二、qsort使用举例 1、使用qsort函数排序整型数据 2、使用qsort排序结构数据 三、qsort函数模拟实现 结语 &#x1f525;个人主页&#xff1a;艾莉丝努力练剑 &#x1f353;专栏传送门&#xff1a;《…...

# YOLOv5:目标检测的新里程碑

YOLOv5&#xff1a;目标检测的新里程碑 在计算机视觉领域&#xff0c;目标检测一直是研究的热点和难点之一。近年来&#xff0c;随着深度学习技术的飞速发展&#xff0c;目标检测算法也取得了显著的进步。YOLO&#xff08;You Only Look Once&#xff09;系列算法以其高效的实…...

beanstalk一直被重新保留(reserved 状态)消息删除

说明&#xff1a;wallet是我的tube 完整流程示例 暂停 tube&#xff08;防止任务被重新保留&#xff09;pause-tube wallet 300踢回并删除任务kick 100000 # 踢回所有 reserved 任务 delete 183723 # 删除目标任务恢复 tube&#xff08;取消暂停&#xff09;pause-tu…...

NLP学习路线图(二): 概率论与统计学(贝叶斯定理、概率分布等)

引言 自然语言处理&#xff08;NLP&#xff09;作为人工智能的重要分支&#xff0c;致力于让机器理解、生成和操作人类语言。无论是机器翻译、情感分析还是聊天机器人&#xff0c;其底层逻辑都离不开数学工具的支持。概率论与统计学是NLP的核心数学基础之一&#xff0c;它们为…...

塔能智能照明方案——贵州某地区市政照明改造实践

在城市市政建设中&#xff0c;照明系统作为城市基础设施的重要组成部分&#xff0c;其能耗问题日益凸显。传统市政照明设备能耗高、运维效率低&#xff0c;成为城市绿色发展的阻碍。塔能科技针对这一痛点&#xff0c;为贵州某地区量身打造智能照明改造方案&#xff0c;通过技术…...

Mybatis的逆向工程Generator

Mybatis的逆向工程 什么是逆向工程 generator 简单点说&#xff0c;就是通过数据库中的单表&#xff0c;自动生成java代码。 Mybatis官方提供了逆向工程&#xff0c;可以针对单表自动生成mybatis代码&#xff08;mapper.java\mapper.xml\po类&#xff09; 企业开发中&#…...

Runtime Suspend 专项训练

Q1. 什么是 Runtime PM&#xff1f;与 System Suspend 有什么区别&#xff1f; 答&#xff1a; Runtime PM&#xff08;运行时电源管理&#xff09;是 Linux 内核为单个设备提供的自动挂起机制。其核心思想是在设备空闲期间&#xff0c;关闭其时钟、电源、总线连接等资源&…...

香港科技大学(广州)智能制造理学硕士招生宣讲会——深圳大学专场

深圳大学专场宣讲会 时间&#xff1a;5月22日&#xff08;星期四&#xff09;19:00-20:00 地点&#xff1a;深圳大学沧海校区致原楼1101 ‍&#x1f393;主讲嘉宾&#xff1a; 汤凯 教授 https://facultyprofiles.hkust-gz.edu.cn/faculty-personal-page/TANG-Kai/mektang …...

使用MacPro 安装flutter开发环境 详细教程

Mac 有 英特尔芯片 和 苹果芯片&#xff0c;故安装路径可能略有不同&#xff0c;但是思路 大致一样&#xff0c;以下内容仅供小伙伴们参考&#xff1a; 首先下载环境安装的软件&#xff0c;并推荐使用稳定版本。 gralde 8.5 点击下载 android studio 点击下载 jdk 点击下载…...

常见的 API 及相关知识总结

常见的 API 及相关知识总结 一、Math 类 Math 类提供了许多用于数学计算的静态方法和常量。 常见方法总结 方法描述Math.abs()返回一个数的绝对值Math.ceil()返回大于或等于给定数字的最小整数Math.floor()返回小于或等于给定数字的最大整数Math.round()对一个数进行四舍五…...

7-Zip软件下载与使用攻略:如何使用7z格式解压缩更高效?

在数字化文件管理中&#xff0c;压缩与解压缩工具的选择至关重要。7-Zip是一款广受欢迎的开源软件&#xff0c;以其高效的压缩率和多种格式支持而备受推崇。然而&#xff0c;解压专家作为另一款优秀的解压缩软件&#xff0c;同样值得关注。本文将为您推荐7-Zip的下载渠道&#…...

第 84 场周赛:翻转图像、字符串中的查找与替换、图像重叠、树中距离之和

Q1、[简单] 翻转图像 1、题目描述 给定一个 n x n 的二进制矩阵 image &#xff0c;先 水平 翻转图像&#xff0c;然后 反转 图像并返回 结果 。 水平翻转图片就是将图片的每一行都进行翻转&#xff0c;即逆序。 例如&#xff0c;水平翻转 [1,1,0] 的结果是 [0,1,1]。 反转…...

SkyReels-V2:开启无限时长电影生成新时代

AI 在视频生成领域的突破尤为引人注目&#xff0c;为内容创作带来了全新的可能性。而 SkyReels-V2 的问世&#xff0c;更是如同一场革命&#xff0c;彻底颠覆了人们对视频生成技术的认知&#xff0c;开启了无限时长电影生成的新时代。 一、背景与挑战 回顾视频生成技术的发展…...

教师可用的申报书——基于GAI的小学数学课堂跨学科支架设计与实践

课题申报书:基于GAI的小学数学课堂跨学科支架设计与实践 (一)立项依据与研究内容 1. 项目的立项依据 1.1 研究意义 2025年《教育强国建设规划纲要》明确提出“推动学科融合发展”,《信息化标准建设行动计划(2024-2027年)》强调技术赋能教育创新。小学数学作为基础学科,…...

79、modelsim单独仿真altera带IP核的文件

1.编译 quartus 仿真库&#xff08;如果有就不用编译了&#xff09; ​ ​ ​ 编译完成后 sim 文件夹中产生一个 verilog_libs 文件夹,打开文件夹 ​ ​ 以上便是编译产生的库&#xff0c;将库添加到 modelsim 中也就是观察此文件中的 modelsim.ini 与 modelsim 安装目录下此…...

将 Workbook 输出流直接上传到云盘

如果不想将 Excel 文件保存到本地&#xff0c;而是希望直接将输出流上传到云存储&#xff08;如阿里云OSS、腾讯云COS、七牛云等&#xff09;&#xff0c;可以采用以下方法&#xff1a; 文章目录 1. 创建内存中的 Excel 输出流2. 上传到云存储的通用方法3. 具体云服务实现示例…...

【LINUX操作系统】日志系统——自己实现一个简易的日志系统

经过一段时间的操作系统的学习&#xff0c;现在是时候让读者朋友们利用学过的技术知识自己完成一个简单的日志系统。认识、了解日志系统既是对已有多线程知识的运用&#xff0c;也是进一步提升项目技术能力的必须步骤。 1. 什么是日志 ⽇志认识 计算机中的⽇志是记录系统和软件…...

HTML页面渲染过程

前言 文章很长&#xff0c;凡是我觉得好的东西统统都塞进来了。看了很多的文章&#xff0c;有些说法甚至都不统一&#xff0c;所以还动用了AI搜索。总之希望这篇文章能有点用&#xff0c;如有错误&#xff0c;欢迎指正。 浏览器介绍 浏览器的主要组件包括&#xff1a; 界面…...

【八股战神篇】Java虚拟机(JVM)高频面试题

目录 专栏简介 一 请解释Java虚拟机&#xff08;JVM&#xff09;及其主要功能 延伸 1. JVM的基本概念 2. JVM的主要功能 二 对象创建的过程了解吗 延伸 1.Java 创建对象的四种常见方式 三 什么是双亲委派模型 延伸 1.双亲委派机制的作用&#xff1a; 2.双亲委派模型…...

微店商品详情接口开发指南

接口概述 微店商品详情接口&#xff08;/api/v1/product/detail&#xff09;用于获取商品的完整信息&#xff0c;包括标题、价格、库存、SKU、主图等数据&#xff0c;支持OAuth2.0鉴权。 点击获取key和secret 请求方式 GET https://open.weidian.com/api/v1/product/detail …...

拦截指定注解(FeignClient),补偿重试

拦截指定注解&#xff08;FeignClient&#xff09;&#xff0c;补偿重试&#xff1b;对代码无入侵 避免正常调用和重试逻辑调用重复插入&#xff1b; 根据自己的业务需求 插入新数据时 是否需要删除之前的旧数据&#xff0c;防止数据覆盖 import cn.hutool.core.util.ObjectUti…...

使用 GitHub Pages 部署单页面应用教程

## 简介 GitHub Pages 是 GitHub 提供的一个静态网站托管服务&#xff0c;可以免费托管个人、项目或组织页面。本教程将指导您如何部署一个单页面应用到 GitHub Pages。 ## 前提条件 - 拥有 GitHub 账号 - 已安装 Git - 已安装 Node.js&#xff08;如果使用前端框架&#x…...

day16-17-磁盘管理

1. 磁盘分类 磁盘接口 硬盘 大小 sata接口 机械硬盘、固态硬盘 机械&#xff1a;4tb 10k性能要求不高 sas接口 机械硬盘、固态硬盘 机械&#xff1a;900G 15k性能好&#xff0c;容量低 pcie-e接口 固态硬盘 tb级别 4tb 8tb 性能要求高&#xff0c;数据库&#xff0c…...

【神经网络与深度学习】扩散模型之通俗易懂的解释

引言&#xff1a; 扩散模型&#xff08;Diffusion Models&#xff09;是近年来深度学习领域的一项重要突破&#xff0c;尤其在生成式人工智能&#xff08;Generative AI&#xff09;中展现了惊人的能力。它的核心思想类似于一个孩子学习搭建乐高城堡的过程——先拆散&#xff0…...