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

操作数组的工具类

Arrays

它里面的每一个方法基本上都是static静态修饰的,如果想要调用里面的方法,不需要创建对象,直接用类名.就可以了

操作数组的工具类

方法:

public static String toString(数组)						把数组拼接成一个字符串
public static int binarySearch(数组,查找的元素)		    二分查找法查找元素
public static int[] copy0f(原数组,新数组长度)			   拷贝数组
public static int[] copy0fRange(原数组,起始索引,结束索引)	拷贝数组(指定范围)
public static void fill(数组,元素)						 填充数组
public static void sort(数组)	  						   按照默认方式进行数组排序
public static void sort(数组,排序规则)	                按照指定的规则排序

接下来我们看看每个方法的实现过程

toString:将数组变成字符串

int[] arr = {1,2,3,4,5,8,9};
System.out.println(Arrays.toString(arr));

输出:
在这里插入图片描述

binarySearch:二分查找元素

细节1:二分查找的前提:数组中的元素必须是有序,数组中的元素必须是升序的
细节2:如果要查找的元素存在,那么返回的是正实的索引
但是,如果要查找的元素不存在,返回的是-插入点-1
解释:如果此时,我现在要查找数字0,那么如果返回的值是-插入点,就会出现问题了。
如果要查找数字0,此时0是不存在的,但是按照上面的规则-插入点,应该就是-0
为了避免这样的情况,Java在这个基础上又减一

System.out.println(Arrays.binarySearch(arr, 5));//4
System.out.println(Arrays.binarySearch(arr, 8));//5
System.out.println(Arrays.binarySearch(arr, 7));//-6

copyOf:拷贝

参数一:老数组
参数二:新数组的长度
方法的底层会根据第二个参数来创建新的数组
如果新数组的长度是小于老数组的长度,会部分拷贝
如果新数组的长度是等于老数组的长度,会完全拷贝 I
如果新数组的长度是大于老数组的长度,会补上默认初始值

int[] newArr1 = Arrays.copyOf(arr,2);
int[] newArr2 = Arrays.copyOf(arr,10);
System.out.println(Arrays.toString(newArr1));//[1, 2]
System.out.println(Arrays.toString(newArr2));//[1, 2, 3, 4, 5, 8, 9, 0, 0, 0]

copyOfRange:拷贝数组(指定返回)

细节:包头不包尾,包左不包右

int[] newArr3 = Arrays.copyOfRange(arr,0,3);
System.out.println(Arrays.toString(newArr3));//[1, 2, 3]

fill:填充数组

拿着10这个数全部填充到数组中

Arrays.fill(arr,10);
System.out.println(Arrays.toString(arr));//[10, 10, 10, 10, 10, 10, 10]

sort:排序,默认情况下,给基本数据类型进行升序排列,底层使用的是快速排序

int[] arr2 = {2,1,4,6,3,5,8,7,9};
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));//[1, 2, 3, 4, 5, 6, 7, 8, 9]

如果不想默认升序,想降序,那我们要学习重载的sort方法

public static void sort(数组,排序规则)  按照指定的规则排序

参数一:要排序的数组
参数二:排序的规则
细节:
只能给引用数据类型的数组进行排序
如果数组是基本数据类型的,需要变成其对于的包装类

Integer[] arr = {2,3,1,5,6,7,8,4,9};

第二个参数是一个接口,所以我们在调用方法的时候,需要传递这个接口的实现类对象,作为排序的规则。
但是这个实现类,我只要使用一次,所以就没有必要单独的去写一个类,直接采取匿名内部类的方式就可以了
底层原理:
利用插入排序 +二分查找的方式进行排序的。
默认把0索引的数据当做是有序的序列,1索引到最后认为是无序的序列。
遍历无序的序列得到里面的每一个元素,假设当前遍历得到的元素是A元素
把A往有序序列中进行插入,在插入的时候,是利用二分查找确定A元素的插入点。
拿着A元素,跟插入点的元素进行比较,比较的规则就是compare方法的方法体
如果方法的返回值是负数,拿着A继续跟前面的数据进行比较
如果方法的返回值是正数,拿着A继续跟后面的数据进行比较
如果方法的返回值是0,也拿着A跟后面的数据进行比较
直到能确定A的最终位置为止。

compare方法的形式参数:
参数一 o1: 表示在无序序列中,遍历得到的每一个元素
参数二 o2: 有序序列中的元素
返回值:
负数:表示当前要插入的元素是小的,放在前面
正数:表示当前要插入的元素是大的,放在后面
0:表示当前要插入的元素跟现在的元素比是一样的们也会放在后面

简单理解:

o1-o2:升序排列

o2-o1:降序排列

Arrays.sort(arr,Compare<Integer>(){
public int compare(Integer o1, Integer o2){System.out.println("----------");System.out.println("o1"+o1);System.out.println("o2"+o2);return o1-o2;
}
});

lambda表达式

简化匿名内部类

Integer[] arr = {2,3,1,5,6,7,4,9};
Arrays.sort(arr,new Comparator<Integer>() {public int compare(Integer o1, Integer o2) {return o2-o1;}
});

简化后

为lambda表达式

Arrays.sort(arr,(Integer o1,Integer o2) -> {return o2-o1;
});

在理解为什么可以这么改,我们先要了解函数式编程

函数式编程

函数式编程 (Functional programming) 是一种思想特点。
函数式编程思想,忽略面向对象的复杂语法,强调做什么,而不是谁去做。

强调方法体的逻辑,而不是创建出来的对象。

lambda表达式的标准格式

lambda表达式是jdk8开始后的一种新语法形式。

()->{}

()对应着方法的形参

->固定格式

{}方法的方法体

注意点:

lambda表达式可以用来简化匿名内部类的书写

lambda表达式只能简化函数式接口的匿名内部类的书写

函数式接口:
有且仅有一个抽象方法的接口叫做函数式接口,接口上方可以加@FunctionalInterface注解

好处:

Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一般可以传递的代码,他可以写得更简洁,更灵活的代码。

注意点:

lambda表达式可以用来简化匿名内部类的书写

lambda表达式只能简化函数式接口的匿名内部类的书写

函数式接口:
有且仅有一个抽象方法的接口叫做函数式接口,接口上方可以加@FunctionalInterface注解

好处:

Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一般可以传递的代码,他可以写得更简洁,更灵活的代码。

相关文章:

操作数组的工具类

Arrays 它里面的每一个方法基本上都是static静态修饰的&#xff0c;如果想要调用里面的方法&#xff0c;不需要创建对象&#xff0c;直接用类名.就可以了 操作数组的工具类 方法&#xff1a; public static String toString&#xff08;数组&#xff09; 把数组拼接成…...

小刚说C语言刷题——第19讲 循环之continue和break

在循环中&#xff0c;当我们得到想要的答案时&#xff0c;这时我们可能要提前结束循环&#xff0c;这个时候我们就会用到break。而我们有时需要结束某一次循环时&#xff0c;我们可以用continue。 1.break语句 (1)在循环中想要提前终止循环&#xff0c;要用break。 (2)语法格…...

FairMOT复现过程中cython_bbox库问题

cython_bbox库就该这么安装_cython-bbox库就应该-CSDN博客...

记录学习的第二十四天

还是每日一题。 题解很巧&#xff0c;我根本想不到。 class Solution { public: int minOperations(vector<int>& nums, int k) { int count; int mnnums[0]; //接下来查找nums数组中最小值 for(int i1;i<nums.size();i) { if(nums[i]<mn) { mnnums[i]; } } …...

Kubernetes 入门篇之网络插件 calico 部署与安装

在运行kubeadm init 和 join 命令部署好master和node节点后&#xff0c;kubectl get nodes 看到节点都是NotReady状态&#xff0c;这是因为没有安装CNI网络插件。 kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Not…...

HTTP 压力测试工具autocannon(AI)

简介 autocannon 是一款基于 Node.js 的高性能 HTTP 压力测试工具&#xff0c;适用于评估 Web 服务的并发处理能力和性能瓶颈。 一、工具特点 高性能‌&#xff1a;利用 Node.js 异步非阻塞机制模拟高并发请求‌。‌实时监控‌&#xff1a;测试过程中动态展示请求统计和性能…...

【面试】封装、继承、多态的具象示例 模板编程的理解与应用场景 链表适用的场景

文章目录 C面试&#xff1a;封装、继承、多态的具象示例1. 封装 (Encapsulation)2. 继承 (Inheritance)3. 多态 (Polymorphism)综合示例&#xff1a;封装、继承、多态 C模板编程的理解与应用场景我对模板编程的理解C中最常用的模板编程场景1. STL (标准模板库)2. 通用容器实现3…...

机器学习02——概要

一、简介 机器学习是一门在没有明确编程的情况下让计算机学习的科学。 监督学习是有目标的&#xff0c;输入数据对应明确的输出&#xff1b;无监督学习则是“探索”型的&#xff0c;模型的目标是从数据中发现潜在的模式或结构&#xff0c;而不需要预先知道标签。 二、机器学…...

常用的网络安全靶场、工具箱

转载&#xff1a;https://blog.csdn.net/zjzqxzhj/article/details/137945444 打CTF很好玩。可以试一下 1.CTF在线工具 1、CTF在线工具箱&#xff1a;http://ctf.ssleye.com/ 包含CTF比赛中常用的编码、加解密、算法。 2、CTF加解密工具箱&#xff1a;http://www.atoolbox.…...

excel中的VBA指令示例(一)

示例注释&#xff1a; Sub 宏1() sub是宏开头&#xff0c;宏1是宏的名称&#xff0c;自定义&#xff0c;在按钮中可指定用某个宏 后面是注释 Sheets("装配材料").Select ‘选择表 装配材料 Ce…...

神经网络 | 基于脉冲耦合神经网络PCNN图像特征提取与匹配(附matlab代码)

内容未发表论文基于脉冲耦合神经网络(PCNN)的图像特征提取与匹配研究 摘要 本文提出一种基于脉冲耦合神经网络(Pulse-Coupled Neural Network, PCNN)的图像特征提取与匹配方法。通过模拟生物视觉皮层神经元的脉冲同步发放特性,PCNN能够有效捕捉图像纹理与边缘特征。实验表…...

Linux 内核中的 TCP 早期多路分解机制解析

一、引言 在现代高性能网络环境中,Linux 内核需要快速处理大量的 TCP 数据包,同时保持低延迟和高吞吐量。为了实现这一目标,Linux 内核引入了 早期多路分解(Early Demultiplexing) 机制。这种机制允许内核在数据包进入传输层之前,快速找到对应的套接字(socket)并关联数…...

Yalmip工具箱(3)——错误类型

在yalmip中&#xff0c;不可避免地我们会遇到求解出问题的情况&#xff0c;理解和处理错误信息是至关重要的环节。在这里我们查看yalmip的所有错误类型&#xff08;详细见 yalmiperror.m 函数&#xff09; 函数概述 yalmiperror函数的主要作用是根据YALMIP产生的错误代码&…...

【KWDB 创作者计划】_KWDB:开源引领数据库创新变革

在数字化浪潮汹涌澎湃的当下&#xff0c;数据已然成为驱动各行各业发展的核心要素。数据库作为数据管理的关键工具&#xff0c;其性能、功能以及开放性&#xff0c;对企业和社会的数字化进程起着举足轻重的作用。KWDB&#xff0c;作为数据库领域的一颗璀璨新星&#xff0c;正以…...

HarmonyOS学习 实验八:显式动画与属性动画的实现

鸿蒙系统动画开发实战&#xff1a;显式动画与属性动画的探索 引言 在鸿蒙系统的开发过程中&#xff0c;动画效果是提升用户体验的重要一环。通过巧妙运用动画&#xff0c;可以使应用界面更加生动、交互更加流畅。鸿蒙系统提供了丰富的动画开发能力&#xff0c;其中显式动画和…...

高校智慧能源系统解决方案:推动绿色校园建设的智能化实践

高校智慧能源系统解决方案&#xff1a;推动绿色校园建设的智能化实践 一、建设背景&#xff1a;政策驱动与绿色发展需求 为响应国家“碳达峰、碳中和”战略目标&#xff0c;教育部印发《绿色低碳发展国民教育体系建设实施方案》&#xff0c;明确提出需完善校园能源管理体系&a…...

win日志

以第一个为例子 打开后&#xff0c;右上角&#xff08;将所有事件另存为xx)然后一般写今天的日期&#xff0c;进行备份 然后选择下语言即可 日志备份时间的选择&#xff08;根据实际情况选择日志时间&#xff09; 点击右侧事件属性&#xff0c;然后xml视图即可 常见的安全事件…...

嵌入式开发之51单片机入门(一)与LED灯的故事

得而不惜就该死。 --小泽 继续傻冒开始&#xff0c;这次的傻冒之旅是关于嵌入式的51单片机开发&#xff0c;这个系列只讲程序开发逻辑&#xff0c;如需初始环境安装配置&#xff0c;建议移步B站江协科技大佬&#xff0c;本系列也是对大佬所讲内容的复刻&#xff0c;同时添加一…...

TCP 与 UDP

TCP 与 UDP 的区别&#xff08;重要&#xff09; 是否面向连接&#xff1a;UDP 在传送数据之前不需要先建立连接。而 TCP 提供面向连接的服务&#xff0c;在传送数据之前必须先建立连接&#xff0c;数据传送结束后要释放连接。是否是可靠传输&#xff1a;远地主机在收到 UDP 报…...

Linux:进程地址空间

在讲述本篇文章之前&#xff0c;我们先来看一段代码。 从上图输出可以看到&#xff0c;我们的子进程继承了父进程的全局变量val&#xff0c;当子进程中的val产生了修改时&#xff0c;父进程的val值并没有变化&#xff0c;但父子进程在打印val的地址时&#xff0c;会发现val的地…...

【Linux】Linux 操作系统 - 03 ,初步指令结尾 + shell 理解

文章目录 前言一、打包和压缩二、有关体系结构 (考)面试题 三、重要的热键四、shell 命令及运行原理初步理解五、本节命令总结总结 前言 本篇文章 , 笔者记录的笔记内容包含 : 基础指令 、重要热键 、shell 初步理解 、权限用户的部分问题 。 内容皆是重要知识点 , 需要认真理…...

华为数通不同级别的认证路径和要求是什么?

一、认证路径 HCIA&#xff1a;无需前置认证&#xff0c;通过一门考试&#xff08;代码H12-811&#xff09;即可拿证。 HCIP&#xff1a;建议先通过HCIA-Datacom&#xff0c;再选择子方向&#xff08;如高级路由、安全&#xff09;。 HCIE&#xff1a;最好有hcia/hcip的基础…...

电子电气架构 --- 新能源汽车电子电气系统功能需求

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…...

《从单体到分布式:一个订单系统的架构升级》

1. 问题爆发&#xff1a;单体架构的极限​​ 原来的订单系统长这样&#xff1a; ​​技术栈​​&#xff1a;SpringBoot MyBatis MySQL&#xff08;主从&#xff09;​​部署​​&#xff1a;单机跑所有模块&#xff08;订单、支付、库存&#xff09;​​痛点​​&#xff…...

琴键上的强化学习:让机器人在真实世界里弹钢琴!

在科技飞速发展的今天&#xff0c;机器人的能力边界不断拓展。想象一下&#xff0c;机器人坐在钢琴前&#xff0c;行云流水地弹奏出美妙乐章&#xff0c;这不再是科幻电影里的场景。近日&#xff0c;科研人员在机器人弹钢琴领域取得了突破性进展&#xff0c;让我们一同走进这个…...

【Unity网络编程知识】C#的 Http相关类学习

1、搭建HTTP服务器 使用别人做好的HTTP服务器软件&#xff0c;一般作为资源服务器时使用该方式&#xff08;学习阶段建议使用&#xff09;自己编写HTTP服务器应用程序&#xff0c;一般作为Web服务器或者短连接游戏服务器时使用该方式&#xff08;工作后由后端程序员来做&#…...

【算法学习】链表篇:链表的常用技巧和操作总结

算法学习&#xff1a; https://blog.csdn.net/2301_80220607/category_12922080.html?spm1001.2014.3001.5482 前言&#xff1a; 在各种数据结构中&#xff0c;链表是最常用的几个之一&#xff0c;熟练使用链表和链表相关的算法&#xff0c;可以让我们在处理很多问题上都更加…...

【前端笔记】CSS预处理语言 LESS

官网&#xff1a; Less 快速入门 | Less.js 中文文档 - Less 中文网 LESS很多地方可以比CSS简写很多 安装 npm install -g less 核心优势&#xff1a;变量、嵌套、混合、运算功能让CSS更容易维护&#xff0c;比原生CSS更加简洁高效 1. 变量&#xff08;Variables&#xff09…...

Oracle 查看后台正在执行的 SQL 语句

在 Oracle 数据库中&#xff0c;要查看后台正在执行的 SQL 语句&#xff0c;可以通过查询动态性能视图&#xff08;Dynamic Performance Views&#xff09;或使用监控工具来实现。 1. 查询动态性能视图 (1) 查看当前活跃会话及其执行的 SQL 使用 v$session 和 v$sql 视图关联…...

强化学习原理二 BasicConcepts

状态&#xff0c;State 状态空间&#xff0c;State Space 行动&#xff0c;Action状态转换&#xff0c;state transition策略&#xff0c;Policy 用数组或者矩阵表示这样一个策略 奖励&#xff0c;Reward 不确定的话&#xff0c;表格就不适用了。这个时候就要用数学来表示&…...

【机密计算顶会解读】13:CAGE:通过 GPU 扩展补充 Arm CCA

导读&#xff1a;本文介绍GAGE&#xff0c;利用Arm CCA中的现有硬件安全特性来确保敏感数据的安全性&#xff0c;支持GPU加速的机密计算&#xff0c;在实际平台上的平均性能开销仅为 2.45%&#xff0c;在保持高性能的同时&#xff0c;提供了良好的数据安全保护&#xff0c;且其…...

Android 使用kill -9(SIGKILL信号)强制终止Native进程时,是否会生成tombstone文件

在Android系统中&#xff0c;​使用kill -9&#xff08;SIGKILL信号&#xff09;强制终止Native进程时&#xff0c;不会生成tombstone文件。以下是具体原因和背景分析&#xff1a; 1. ​SIGKILL信号的特性 ​SIGKILL&#xff08;信号9&#xff09;​ 是Linux系统中最高优先级…...

WPS JS宏编程教程(从基础到进阶)-- 第六部分:JS集合与映射在 WPS 的应用

目录 第6章 JS集合与映射在 WPS 的应用6-1 集合的创建(实例:唯一值提取)示例代码详细解析Excel 环境模拟说明6-2 集合的不重复特性应用(案例:提取唯一值记录)示例代码详细解析案例说明6-3 集合成员添加与删除示例代码代码解析直观示意(Excel 模拟表格)6-4 集合成员添加…...

1.VTK 使用CMakeLists

文章目录 1.创建目录2.配置VTK编译环境3.创建main.cpp4.CMake编译 1.创建目录 选择一个空文件夹创建CMakeLists.txt 文件&#xff0c;注意CMakeLists不要写错 2.配置VTK编译环境 cmake_minimum_required(VERSION 3.5) # 最低要求 CMake 3.5&#xff0c;避免兼容性问题 proje…...

PDFtk

如果下载的pdf文件有秘钥的话&#xff0c;使用下面linux命令去掉秘钥&#xff1a; pdftk 纳税记录.pdf input_pw 261021 output 纳税记录_output.pdf将多个单页pdf合并为一个pdf的linux命令: pdftk 自然人电子税务局1.pdf 自然人电子税务局2.pdf 自然人电子税务局3.pdf 自然人…...

整理我的macos的复杂混乱的python环境

一、彻底清理现有环境&#xff08;为全新配置铺路&#xff09; 1. 核级清理&#xff08;⚠️ 先备份重要数据&#xff09; bash复制# 删除所有第三方Python安装 sudo rm -rf /Library/Frameworks/Python.framework/ rm -rf ~/Library/Python/ rm -rf ~/.local/bin/python* rm…...

Vue Router(1)

RouterLink 和 RouterView RouterLink 是一个导航组件&#xff0c;用于在不重新加载页面的情况下切换视图。 RouterView 是一个视图渲染容器组件&#xff0c;用于显示与当前 URL 匹配的组件。 <template><p><strong>Current route path:</strong> {{…...

AI时代如何让命令行工具快速智能化?

引言 作为开发者&#xff0c;我们经常会开发各种命令行工具来提升工作效率。 在AI时代我们又多了一个选择&#xff1a;通过AI生成代码&#xff0c;缺点是不可控、速度慢&#xff0c;优点是使用简单&#xff1b;而代码生成工具与AI的优缺点恰恰相反&#xff0c;如何结合两者的优…...

Android 回答视频边播放边下载的问题

分层次的回答突出 技术深度、架构思维 和 实战优化&#xff0c;从基础实现到高阶优化&#xff1a; 一、核心技术方案&#xff08;基础回答&#xff09; 如何实现视频边下边播&#xff1f; 1. **网络请求**&#xff1a;使用 HTTP Range 请求&#xff08;Header: Range: bytes0…...

【HarmonyOS 5】鸿蒙中如何使用MQTT

一、MQTT是什么&#xff1f; MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输&#xff09;是一种轻量级、基于发布 / 订阅&#xff08;Publish/Subscribe&#xff09;模式的即时通讯协议&#xff0c;专为资源受限的物联网&#xff08;IoT&a…...

Conda与Pip:Python包管理工具的对比与选型

在当今的Python开发环境中&#xff0c;包管理工具的选择对于项目的顺利进行至关重要。Conda和Pip作为两种主流的Python包管理工具&#xff0c;各自具有独特的特点和优势。本文将详细对比Conda和Pip&#xff0c;帮助开发者在项目中做出更合适的选择。 一、概述 Conda&#xff…...

建筑兔零基础自学记录69|爬虫Requests-2

Requests库初步尝试 #导入requests库 import requests #requests.get读取百度网页 rrequests.get(http://www.baidu.com) #输出读取网页状态 print(r.status_code) #输出网页源代码 print(r.text) HTTP 状态码是三位数字&#xff0c;用于表示 HTTP 请求的结果。常见的状态码有…...

OpenCV——图像融合

OpenCV——图像融合 一、引言1.1 图像融合分类 二、C代码实现三、效果展示3.1 标准球3.2 铝制底座 一、引言 在许多计算机视觉应用中(例如机器人运动和医学成像)&#xff0c;需要将来自多幅图像的相关信息集成到一幅图像中。这种图像融合将提供更高的可靠性、准确性和数据质量…...

显示背光发烫异常解析

■显示屏问题描述&#xff1a;&#xff1a; 分辨率&#xff1a;1024x600 尺寸&#xff1a;7寸 16:9 显示模式&#xff1a;IPS 背光参数&#xff1a;3串10并 电压&#xff1a;9.6V 电流&#xff1a;200ma 问题描述&#xff1a;常温装填下&#xff0c;在整机点亮一段时间后&a…...

机器学习--数据填充

一、引言 在机器学习领域&#xff0c;数据的质量直接关乎模型的性能。而数据缺失是实际数据收集过程中极为常见的问题&#xff0c;它像一颗隐藏的 “暗雷”&#xff0c;随时可能影响模型训练的准确性与稳定性。数据填充作为解决数据缺失问题的核心手段之一&#xff0c;有着多种…...

【Linux】40.网络基础(2.2)

文章目录 2. 传输层2.1 再谈端口号2.1.1 端口号范围划分2.1.2 认识知名端口号2.1.3 netstat2.1.4 pidof 2.2 UDP协议2.2.1 UDP协议端格式2.2.2 UDP的特点2.2.3 面向数据报2.2.4 UDP的缓冲区2.2.5 UDP使用注意事项2.2.6 基于UDP的应用层协议 2.3 TCP协议2.3.1 TCP协议段格式2.3.…...

YOLOv12即插即用--CPAM

1.模块介绍 本文提出了一种新型基于注意尺度序列融合的 YOLO 框架,称为 ASF-YOLO,该框架结合空间与尺度信息,实现了高效且精确的细胞实例分割。在 YOLO 分割框架的基础上,设计了 尺度序列特征融合(SSFF)模块,用于增强多尺度信息提取能力;同时引入 三重特征编码器(TPE…...

工业制造核心术语

• BOM&#xff1a; Bill of Material。物料清单。根据物料所处的阶段不同&#xff0c;可分为不同视图&#xff1a;EBOM&#xff08;Engineering BOM&#xff0c;设计BOM&#xff09;、PBOM&#xff08;Process BOM&#xff09;工艺BOM、MBOM&#xff08;Manufacturing BOM&…...

实现一个 Markdown 编辑器组件:Vue 3 + Vite + Highlight.js

文章目录 一、项目背景与需求分析二、搭建基础项目1. 初始化 Vue 3 项目2. 安装依赖 三、实现 Markdown 编辑器组件1. 创建 Markdown 编辑器组件2. 组件说明 四、优化与拓展1. 自动保存功能2. 文件上传功能 五、总结 一、项目背景与需求分析 在现代前端开发中&#xff0c;Mark…...

海外交友APP多语音系统实现

一、逻辑分析 语音录制功能&#xff1a; 用户需要在 APP 中能够方便地触发语音录制操作。这涉及到调用设备的麦克风权限&#xff0c;获取音频输入流。录制的音频数据需要进行临时存储&#xff0c;以便后续处理和发送。 语音播放功能&#xff1a; 当接收到其他用户发送的语音消…...