Scala(Array,List,Set,Map,Tuple,字符串 使用的简单介绍)
目录
Array 不可变数组
ArrayBuffer可变数组
List 不可变列表
ListBuffer 可变列表
Set 集合(可变不可变)
Map映射(可变不可变)(键值对)
Tuple 元组
字符串
Array 不可变数组
// Array 数组// scala 中的数组下标是()// scala 中的数组是值类型,不是引用类型// scala 中的数组是定长的,一旦创建,长度不可变// 创建一个长度为3的数组,并初始化val arr = Array[String]("apple", "banana", "orange")// 创建一个长度为3的数组val arr1 = new Array[String](3)// 给数组赋值arr1(0) = "apple"arr1(1) = "banana"arr1(2) = "orange"// 数组创建并初始化val arr2 = Array("apple", "banana", "orange")// 整型数组val arr3 = Array(1, 2, 3, 4, 5)// 创建一个包含1到9的数组val arr4 = Array.range(1, 10)// 遍历数组arr4for (i <- arr4) {println(i)}// 创建一个包含1到9,步长为2的数组val arr5 = Array.range(1, 10, 2)for (i <- arr5) {println(i)}
ArrayBuffer可变数组
// ArrayBuffer// 用这个可变数组前要导入// import scala.collection.mutable.ArrayBuffer// 创建一个可变数组val arr6 = ArrayBuffer[String]()// arr6.append("apple")// val arr7 = ArrayBuffer("apple","banana","orange")// += 追加元素// += 操作符是在原数组基础上追加的arr6 += "apple"// 追加多个arr6 += ("banana", "orange")// ++= 追加一个数组// ++=操作符用于将一个可迭代对象(如数组、列表等)// 中的所有元素追加到目标可变对象(如可变数组)的末尾。// ++=操作的本质是遍历右侧操作数中的每个元素,// 并将这些元素逐个添加到左侧的可变对象中,// 所以右侧操作数需要是能够被遍历的可迭代对象。arr6 ++= Array("pear", "grape")// 遍历数组for (i <- arr6) {println(i)}// -= 删除指定元素arr6 -= "apple"// -= 删除一个多个元素arr6 -= ("banana", "orange")// --= 删除一个数组arr6 --= Array("pear", "grape")// 遍历数组for (i <- arr6) {println(i)}println("\n")// 创建一个可变数组val arr7 = ArrayBuffer(11, 22, 33, 44, 55, 66)// 删除指定下标的元素arr7.remove(1)for (i <- arr7) {println(i)}println("\n")// 删除指定下标和指定长度的元素arr7.remove(1, 2)for (i <- arr7) {println(i)}
List 不可变列表
// List 列表// 创建一个列表val list1 = List(1, 2, 3)// 创建一个空列表val list2 = List()// 创建一个包含11到19的列表val list3 = List.range(11, 20)// 创建一个包含20到29,步长为2的列表val list4 = List.range(20, 30, 2)// 遍历列表list4for (i <- list4) {println(i)}println("\n")// ++ 是用于连接两个列表的操作符// 将list3中的所有元素追加到list1的末尾,// 从而创建一个 新的列表 list5val list5 = list1 ++ list3for (i <- list5) {println(i)}println("\n")// :: 是用于在列表的开头添加元素的操作符val list6 = 20 :: list1for (i <- list6) {println(i)}println("\n")// ::: 是用于连接两个列表的操作符// 将list1中的所有元素追加到list2的末尾,// 从而创建一个 新的列表 list7val list7 = list2 ::: list1for (i <- list7) {println(i)}
ListBuffer 可变列表
// ListBuffer 可变列表// 要先导入下面// import scala.collection.mutable.ListBuffer// 创建一个可变列表val list8 = new ListBuffer[String]()// += 追加元素list8 += "张三"// += 追加多个元素list8 += ("李四", "王五")// ++= 追加一个列表list8 ++= List("赵六", "钱七")// 遍历for (i <- list8) {println(i)}println("\n")// -= 删除指定元素list8 -= "张三"// -= 删除多个元素list8 -= ("李四", "王五")// --= 删除一个列表list8 --= List("赵六", "钱七")// 遍历for (i <- list8) {println(i)}println("\n")// 创建一个可变列表val list9 = ListBuffer(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)// 删除指定下标的元素list9.remove(1)// 遍历for (i <- list9) {println(i)}println("\n")// 删除指定下标和指定长度的元素list9.remove(0, 2)// 遍历for (i <- list9) {println(i)}println("\n")
Set 集合(可变不可变)
// Set 集合// 会自动实现去重// 是无序的// 创建一个不可变集合val s1 = Set(1, 2, 3, 4, 5)for (i <- s1) {println(i)}println("\n")// 添加元素,生成一个新的集s2val s2 = s1 + 6for (i <- s2) {println(i)}println("\n")// 判断s2是否包含6,包含7val a1 = s2.contains(6)val a2 = s2.contains(7)println(a1) //trueprintln(a2) // falseprintln("\n")// Set 可变集合// 要导入import scala.collection.mutable.Set// 创建一个空的可变集合val s3 = Set.empty[Int]// 添加元素s3 += (44, 22, 22, 33) // 会自动实现去重for (i <- s3) {println(i)}println("\n")val s5 = Set(1, 2, 3, 4, 5)// 删除元素s5 -= 1for (i <- s5) {println(i)}println("\n")val b1 = s5.contains(3)println(b1) // trueval b2 = s5.contains(6)println(b2) // falseprintln("\n")
Map映射(可变不可变)(键值对)
// Map 映射// Map 是一种键值对的集合,其中每个键都是唯一的,每个键都映射到一个值。// Map 的键和值可以是任意类型的对象,但键必须是可哈希的。// Map 是不可变的,但可以通过添加或删除键值对来创建一个新的 Map。// Map 的键值对是通过键来访问的,可以使用键来获取对应的值。// Map 的键值对是无序的,但可以通过键的顺序来访问它们。// Map 的键值对是可变的,可以通过修改键值对来改变 Map 的内容。// 创建一个不可变映射val map1 = Map("apple" -> 1, "banana" -> 2, "orange" -> 3)// 遍历for ((k, v) <- map1) { // k 是键,v 是值println(k + " : " + v)}println("\n")val c1 = map1.contains("apple")println(c1) // trueprintln("\n")// 创建一个可变映射// 要导入import scala.collection.mutable.Mapval map2 = Map("aa"-> 11,"bb"->22,"cc"->33)// 添加键值对map2 += ("dd" -> 44,"ff"-> 66)map2("ee") = 55// 遍历for ((k, v) <- map2) {println(k + " : " + v)}println("\n")// 删除键值对map2 -= "aa"map2 -= ("ee","cc")// 遍历for ((k, v) <- map2) {println(k + " : " + v)}println("\n")// 获取指定键的值val v1 = map2("bb")println(v1) // 22println("\n")// 获取指定键的值,如果不存在则返回默认值val v2 = map2.getOrElse("gg", 0)println(v2) // 0println("\n")// 获取所有的键和值,返回一个集合val set1 = map2.keysval set2 = map2.values// 遍历for (i <- set1) {println(i)}for (i <- set2) {println(i)}println("\n")
Tuple 元组
// Tuple 元组// 元组是 Scala 中的一种数据结构,它可以包含多个不同类型的元素,但元组的长度是固定的。// 元组中的元素可以通过索引来访问,索引从 1 开始。// 元组是不可变的,一旦创建就不能修改。// 元组可以用于返回多个值,或者将多个值组合成一个单一的值。// 元组可以用于模式匹配,以便从复杂的结构中提取出特定的元素。// 创建一个三元组,有三个元素,元组类型为(int,String,double)val t1 = (1, "hello", 3.14)// 使用下划线_语法 来访问元组中的元素。// tuple._n取出元祖的第 n 个元素,第一元素下标为1val a = t1._1val b = t1._2val c = t1._3println(a)println(b)println(c)println("\n")// 遍历元组for (i <- t1.productIterator) {println(i)}// productIterator方法// productIterator方法的主要作用是提供一种统一的方式来遍历对象的所有元素,// 无论这个对象是元组还是样例类。// 它返回一个迭代器,这个迭代器可以用于遍历对象中的所有元素。// 可以使用for循环来遍历元组中的所有元素。// 可以使用foreach方法来遍历元组中的所有元素。// 可以使用map方法来遍历元组中的所有元素,并将每个元素映射到一个新的值。// 可以使用filter方法来遍历元组中的所有元素,并返回满足特定条件的元素。// 可以使用zip方法来将两个元组中的元素组合成一个新的元组。// 可以使用unzip方法来将一个元组中的元素拆分成两个元组。// 可以使用flatten方法来将一个元组中的所有元素展开成一个单一的元组。// 可以使用fold方法来将一个元组中的所有元素组合成一个单一的值。println("\n")
字符串
// 字符串// 可以看成是一个字符数组// 字符串是 Scala 中的一种数据类型,它可以包含任意数量的字符。// 字符串是不可变的,一旦创建就不能修改。// 字符串可以通过索引来访问,索引从 0 开始。// 字符串可以通过连接运算符(+)来连接。// 字符串可以通过插值运算符(s)来插入变量。// 字符串可以通过正则表达式来匹配和替换。// 字符串可以通过字符串方法来操作,例如toUpperCase、toLowerCase、substring等。// 字符串可以用于表示文本数据,例如文件名、URL、用户名等。// 字符串可以用于表示二进制数据,例如图片、音频、视频等。val str1 = "hello world"// 分割字符串,调用split方法,结果为一个数组val arr11 = str1.split(" ") // 按空格分割for (i <- arr11) {println(i)}println("\n")val str2 = "I love you"// 字符串的长度val len = str2.lengthprintln(len)println("\n")// 字符串的索引val cc1 = str2(0)println("str2(0)位置是 " + cc1)println("\n")val cc2 = str2.charAt(4)println("str2(4)位置是 " + cc2)// 字符串的遍历for (i <- str2) {println(i)}println("\n")// 字符串的连接val str3 = "I " + "love " + "you"println(str3)println("\n")// 字符串的插值val name = "Alice"val age = 20val str4 = s"My name is $name, I am $age years old."println(str4)println("\n")// 字符串的匹配val str5 = "hello world"val pattern = "hello"val result = str5.matches(pattern)println(result)println("\n")// 字符串的替换// replace方法,将字符串中的第一次出现的指定字符替换为新的字符// replaceAll方法,将字符串中的出现的所有指定字符替换为新的字符,支持正则表达式val str6 = "hello world"val result1 = str6.replace("hello", "hi")val r = str6.replaceAll("world","Scala")println("result1的结果是 " + result1)println("r的结果是 " + r)println("\n")// 字符串的截取val str7 = "hello world"val result2 = str7.substring(0, 5)println(result2)println("\n")// 字符串的转换,全换大写val str8 = "hello world"val result3 = str8.toUpperCaseprintln(result3)println("\n")// 字符串的转换,全换小写val result4 = str8.toLowerCaseprintln(result4)println("\n")// 字符串的反转val result5 = str8.reverseprintln(result5)println("\n")// 字符串的去除空格val result6 = str8.trimprintln(result6)println("\n")// 字符串的首字母大写val result7 = str8.capitalizeprintln(result7)println("\n")// 字符串的包含val result8 = str8.contains("hello")println(result8)println("\n")// 出现hello的第一个索引位置val result9 = str8.indexOf("hello")println(result9)println("\n")// 出现hello的最后一个索引位置val result10 = str8.lastIndexOf("hello")println(result10)println("\n")// 字符串是否以hello开头val result11 = str8.startsWith("hello")println(result11)println("\n")// 字符串是否以world结束val result12 = str8.endsWith("world")println(result12)println("\n")// 字符串是否为空val result13 = str8.isEmptyprintln(result13)println("\n")
split("\\s+")解释
val words = sentence.split("\\s+")
在正则表达式中,\\s
表示空白字符,包括空格、制表符(\t)、换行符(\n)等。而 +
是一个量词,表示前面的字符(这里就是空白字符 \\s
)可以出现一次或多次。
所以在 sentence.split("\\s+")
这个语句中,是按照一个或多个连续的空白字符来分割字符串 sentence
的。
例如,如果有一个字符串 "Hello World",使用这个表达式分割后,就会得到 ["Hello", "World"] 两个子字符串。
相关文章:
Scala(Array,List,Set,Map,Tuple,字符串 使用的简单介绍)
目录 Array 不可变数组 ArrayBuffer可变数组 List 不可变列表 ListBuffer 可变列表 Set 集合(可变不可变) Map映射(可变不可变)(键值对) Tuple 元组 字符串 Array 不可变数组 // Array 数组// scala 中的数组下标是()// scala 中的数组是值…...
fmql之Linux WDT
正点原子第52章。 基础知识 正点原子教程 fmql-dts 代码 APP代码(不需要编写驱动代码) static int dw_wdt_drv_probe(struct platform_device *pdev) {struct device *dev &pdev->dev;struct watchdog_device *wdd;struct dw_wdt *dw_wdt; …...
IntelliJ IDEA集成MarsCode AI
IntelliJ IDEA集成MarsCode AI IDEA中安装插件 安装完毕之后登录自己的账号 点击链接,注册账号 https://www.marscode.cn/events/s/i5DRGqqo/ 可以选择不同的模型...
python-leetcode-打家劫舍 III
337. 打家劫舍 III - 力扣(LeetCode) 这个问题可以通过动态规划解决。可以通过递归的方式来解决每个房子的最大偷窃金额,递归过程中,我们会记录每个房子是否偷或不偷时能够获得的最大金额。 思路: 对于每个房子,我们有两种选择: 偷这个房子,那么它的直接相邻(父亲和孩…...
数据结构——队列
1. 概念与结构 队列(Queue)是一种先进先出(FIFO, First In First Out)的数据结构,即最先被插入队列的数据会最先被删除。队列广泛应用于计算机科学中,特别是在任务调度、缓冲区管理、网络数据传输等领域。…...
GaussianCity:实时生成城市级数字孪生基底的技术突破
在空间智能领域,如何高效、大规模地生成高质量的3D城市模型一直是一个重大挑战。传统方法如NeRF和3D高斯溅射技术(3D-GS)在效率和规模上存在显著瓶颈。GaussianCity通过创新性的技术方案,成功突破了这些限制,为城市级数字孪生的构建提供了全新路径。 一、核心创新:突破传…...
【AGI】智谱开源2025:一场AI技术民主化的革命正在到来
智谱开源2025:一场AI技术民主化的革命正在到来 引言:开源,一场技术平权的革命一、CogView4:中文AI生成的里程碑1. 破解汉字生成的“AI魔咒”2. 开源协议与生态赋能 二、AutoGLM:人机交互的范式跃迁1. 自然语言驱动的跨…...
【算法学习之路】5.贪心算法
贪心算法 前言一.什么是贪心算法二.例题1.合并果子2.跳跳!3. 老鼠和奶酪 前言 我会将一些常用的算法以及对应的题单给写完,形成一套完整的算法体系,以及大量的各个难度的题目,目前算法也写了几篇,题单正在更新…...
C++11中的右值引用和完美转发
C11中的右值引用和完美转发 右值引用 右值引用是 C11 引入的一种新的引用类型,用 && 表示。它主要用于区分左值和右值,并且可以实现移动语义,避免不必要的深拷贝,提高程序的性能。左值通常是可以取地址的表达式…...
Leetcode 1477. 找两个和为目标值且不重叠的子数组 前缀和+DP
原题链接: Leetcode 1477. 找两个和为目标值且不重叠的子数组 class Solution { public:int minSumOfLengths(vector<int>& arr, int target) {int narr.size();int sum0;int maxnINT_MAX;vector<int> dp(n,maxn);//dp[i]表示以索引i之前的满足要求…...
koa-session设置Cookie后获取不到
在谷歌浏览器中请求获取不到cookie问题之一(谷歌安全策略) 场景 前端使用 axios 请求,项目地址:http://192.168.8.1:5173 import axios from axiosconst request axios.create({baseURL: http://127.0.0.1:3001/,timeout: 60000,…...
Linux三种网络方式
前言 发现运维啥都得会,这周就遇到了网络问题自己无法解决,因此痛定思痛学一下。 参考文献 你管这破玩意叫网络? 桥接模式、NAT模式、仅主机模式,原来是这样工作的 交换机 构成局域网,实现所有设备之间的通信。 …...
android_viewtracker 原理
一、说明 我们业务中大部分场景是用 RecyclerView 实现的列表,而 View 的曝光通常是直接写在 adapter 的 onBindViewHolder 中,这样就会导致 item 还没显示出来的时候就会触发曝光。最近业务提出需要实现根据 View 显示在屏幕上面积大于 80% 才算曝光。…...
Object.defineProperty()
**Object.defineProperty()** 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。 plain const object1 {}; Object.defineProperty(object1, ‘property1’, { value: 42, writable: false }); object1.property1 77…...
大模型+知识图谱:重塑企业制度标准管理
在数字化转型的浪潮中,制度标准管理领域正迎来一场革命性的变革。借助大模型和知识图谱等前沿人工智能技术,制度标准管理不再仅仅是简单的文档存储和检索,而是演变为一个智能化、高效化、精准化的管理体系。 1.关键技术 我们的制度标准管理…...
ubuntu20系统下conda虚拟环境下安装文件存储位置
在 Conda 虚拟环境中执行 pip install 安装软件后,安装的文件会存储在该虚拟环境专属的 site-packages 目录中。具体路径取决于你激活的 Conda 环境路径。以下是定位步骤: 1. 确认 Conda 虚拟环境的安装路径 查看所有环境: conda info --env…...
深度学习编译器(整理某survey)
一、深度学习框架 TensorFlow PyTorch MXNet ONNX:定义了一个统一的表示,DL models的格式方便不同框架之间的转换模型 二、深度学习硬件 通用硬件(CPU、GPU):通过硬件和软件优化支持深度学习工作负载 GPU:通过多核架构实现高…...
Python学习第八天
查看函数参数 操作之前给大家讲一个小技巧:如何查看函数的参数(因为python的底层源码是C语言并且不是开放的,也一直困扰着刚学习的我,这个参数叫什么名之类的看doc又总是需要翻译挺麻烦的)。 比如我们下面要说到的op…...
SpringBoot为什么默认使用CGLIB?
大家好,我是锋哥。今天分享关于【SpringBoot为什么默认使用CGLIB?】面试题。希望对大家有帮助; SpringBoot为什么默认使用CGLIB? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot 默认使用 CGLIB(Code Generation Li…...
【消息队列】数据库的数据管理
1. 数据库的选择 对于当前实现消息队列这样的一个中间件来说,具体要使用哪个数据库,是需要稍作考虑的,如果直接使用 MySQL 数据库也是能实现正常的功能,但是 MySQL 也是一个客户端服务器程序,也就意味着如果想在其他服…...
pytest中pytest.ini文件的使用
pytest.ini 是 pytest 测试框架的配置文件,它允许你自定义 pytest 的行为。通过在 pytest.ini 中设置各种选项,可以改变测试用例的发现规则、输出格式、插件行为等。以下详细介绍 pytest.ini 文件的使用。 1. 文件位置 pytest.ini 文件通常位于项目的根目录下,pytest 在运…...
docker学习笔记(1)从安装docker到使用Portainer部署容器
docker学习笔记第一课 先交代背景 docker宿主机系统:阿里云ubuntu22.04 开发机系统:win11 docker镜像仓库:阿里云,此阿里云与宿主机系统没有关系,是阿里云提供的一个免费的docker仓库 代码托管平台:github&…...
Vue.js侦听器
侦听器 基本示例 计算属性允许我们声明性地计算衍生值。然而在有些情况下,我们需要在状态变化时执行一些“副作用”:例如更改 DOM,或是根据异步操作的结果去修改另一处的状态。 在组合式 API 中,我们可以使用 watch 函数在每次响应式状态发生变化时触发回调函数: …...
【C++学习篇】智能指针
目录 1. 智能指针的使用场景分析 2. RAII和智能指针的设计思路 3. C标准库智能指针的使用 4.shared_ptr和weak_ptr 4.1shared_ptr的循环引用问题 4.2 weak_ptr 1. 智能指针的使用场景分析 下⾯程序中我们可以看到,new了以后,我们也delete了,…...
数字电子技术基础(二十四)——TTL门电路的高、低电平的输出特性曲线
目录 1 TTL门电路的特性曲线 1.1 高电平输出特性 1.1.2 高电平输出特性的实验过程 1.1.2 TTL门电路的输出特性的实验结果 1.2 低电平的输出特性 1 TTL门电路的特性曲线 1.1 高电平输出特性 1.1.2 高电平输出特性的实验过程 现在想要测试TTL门电路的输出特性,…...
linux进程通信之共享内存
在 Linux 系统中,共享内存(Shared Memory) 是一种高效的进程间通信(IPC)方式,允许多个进程直接访问同一块物理内存区域。以下是关于 Linux 共享内存的详细讲解: 一、共享内存的核心特点 高速通信…...
学习第十一天-树
一、树的基础概念 1. 定义 树是一种非线性数据结构,由 n 个有限节点组成层次关系集合。特点: 有且仅有一个根节点其余节点分为若干互不相交的子树节点间通过父子关系连接 2. 关键术语 术语定义节点包含数据和子节点引用的单元根节点树的起始节点&#…...
场景题:10亿QQ用户,如何统计在线人数?
现在卷的环境下,面试除了八股文算法项目外,场景题也是问的越来越多了。一方面是就业市场竞争者较多所带来的必然结果;另一方面是公司对于应聘者的技术要求也越来越高了。 今天继续介绍Java面试常见的场景题:在线人数统计 现在用户…...
学习工具的一天之(burp)
第一呢一定是先下载 【Java环境】:Java Downloads | Oracle 下来是burp的下载 Download Burp Suite Community Edition - PortSwigger 【下载方法二】关注的一个博主 【BurpSuite 安装激活使用详细上手教程 web安全测试工具】https://www.bilibili.com/video/BV…...
归并排序:分治哲学的完美演绎与时空平衡的艺术
引言:跨越世纪的算法明珠 在计算机科学的璀璨星河中,归并排序犹如一颗恒久闪耀的明星。1945年,现代计算机之父冯诺伊曼在EDVAC计算机的研发过程中首次系统性地提出了这一算法,其精妙的分治思想不仅奠定了现代排序算法的理论基础&…...
蓝桥杯4T平台(串口打印电压值)
知识点:串口(单片机发送数据)按键ADC 题目 配置 代码 adc.c uint16_t getadc2(void) {uint16_t adc0;HAL_ADC_Start(&hadc2);adcHAL_ADC_GetValue(&hadc2);return adc; } adc.h uint16_t getadc2(void); main.c #include "lcd.h" #include…...
Stable Diffusion Prompt编写规范详解
Stable Diffusion Prompt编写规范详解 一、语法结构规范 (一)基础模板框架 [质量强化] [主体特征] [环境氛围] [风格控制] [镜头参数]质量强化:best quality, ultra detailed, 8k resolution主体特征:(1girl:1.3), long …...
es6常见知识点
官方文档:[https://es6.ruanyifeng.com/](https://es6.ruanyifeng.com/) 一、Class 1、Class Class只是一个语法糖,其功能用es5也能实现,但是比es5更符合类的期待 定义: constructor代表构造方法,而this指向new 生成的实例 定义类方法时,可以不使用function 注…...
leetcode1 两数之和 哈希表
什么时候使用哈希法,当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。 242. 有效的字母异位词 (opens new window)这道题目是用数组作为哈希表来解决哈希问题,349. 两个数组的交集 (o…...
Java中lombok的@Data注解【布尔类型】字段定义方式
文章目录 背景第一步、场景复现第二步、分析问题第三步、实现方案总结 背景 在Data注解的bean中添加Boolean字段时,set方法正常,get方法无法获取。 第一步、场景复现 在OrderInfo的实体中,新增布尔类型的字段:支付过【hasPaid】…...
理解数学概念——稠密性(density)
目录 1. 定义 2. 等价定义 3. 直观理解 1. 定义 在拓扑学(topology)和数学相关领域中,对于一个拓扑空间 X 的一个子集 A,若 X的每一个点要么属于A ,要么无限“接近”X的某个成员,则称这个子集 A 是稠密的(dense)或称A具有稠密性…...
【Spring AOP】_切点类的切点表达式
目录 1. 根据方法签名匹配编写切点表达式 1.1 具体语法 1.2 通配符表达规范 2. 根据注解匹配编写切点表达式 2.1 实现步骤 2.2 元注解及其常用取值含义 2.3 使用自定义注解 2.3.1 编写自定义注解MyAspect 2.3.2 编写切面类MyAspectDemo 2.3.3 编写测试类及测试方法 在…...
通过多线程获取RV1126的AAC码流
目录 一RV1126多线程获取音频编码AAC码流的流程 1.1AI模块的初始化并使能 1.2AENC模块的初始化 1.3绑定AI模块和AENC模块 1.4多线程获取每一帧AAC码流 1.5每个AAC码流添加ADTSHeader头部 1.6写入具体每一帧AAC的…...
HDFS 为什么不适合处理小文件?
目录 一、HDFS 是什么? 1. 核心目标 2. 基本架构 二、HDFS 为什么不适合处理小文件? 1. 元数据管理问题 2. 存储效率低下 3. 访问性能问题 4. 计算框架效率问题 5. 其他限制 一、HDFS 是什么? HDFS(Hadoop 分布式文件系统…...
网络空间安全(14)编辑器漏洞
一、概述 网页在线编辑器允许用户在网页上进行文本的编辑,并设置字体样式、段落行间距等,类似于使用Word进行编辑。然而,由于编辑器在处理用户输入、文件上传、权限控制等方面可能存在安全缺陷,因此容易成为攻击者利用的目标。 二…...
SpringMvc与Struts2
一、Spring MVC 1.1 概述 Spring MVC 是 Spring 框架的一部分,是一个基于 MVC 设计模式的轻量级 Web 框架。它提供了灵活的配置和强大的扩展能力,适合构建复杂的 Web 应用程序。 1.2 特点 轻量级:与 Spring 框架无缝集成,依赖…...
Avalonia 打包成deb
参考 https://www.cnblogs.com/Fengyinyong/p/13346642.html 安装工具 dotnet tool install --global dotnet-deb 还原包 dotnet restore -r linux-x64 dotnet deb install 打包,其中/p:SelfContainedtrue是独立运行 dotnet msbuild XXXCore.csproj /t:Creat…...
服务器数据恢复—raid5阵列中硬盘掉线导致上层应用不可用的数据恢复案例
服务器数据恢复环境&故障: 某公司一台服务器,服务器上有一组由8块硬盘组建的raid5磁盘阵列。 磁盘阵列中2块硬盘的指示灯显示异常,其他硬盘指示灯显示正常。上层应用不可用。 服务器数据恢复过程: 1、将服务器中所有硬盘编号…...
除了合并接口,还有哪些优化 Flask API 的方法?
除了合并接口,还有许多其他方法可以优化 Flask API,以下从性能优化、代码结构优化、安全性优化、错误处理优化等方面详细介绍: 性能优化 1. 使用缓存 内存缓存:可以使用 Flask-Caching 扩展来实现内存缓存,减少对数…...
制服小程序的“滑手”:禁用页面左右滑动全攻略
哈哈,看来你已经很聪明地发现了小程序中左右滑动的“顽皮”行为!😄 没错,我们可以通过设置 disableScroll 属性来“管教”它,同时结合 CSS 样式让页面既禁得住横向“乱跑”,又能顺畅地上下滚动。你的方案已…...
学习日记-250305
阅读论文:Leveraging Pedagogical Theories to Understand Student Learning Process with Graph-based Reasonable Knowledge Tracing ps:代码逻辑最后一点还没理顺,明天继续 4.2 Knowledge Memory & Knowledge Tracing 代码研究: 一般…...
DeepSeek R1模型医疗机构本地化部署评估分析(Discuss V1版上)
为了确保医疗机构在部署和应用DeepSeek R1模型时的成功,可以根据各个步骤设计一套综合的评估和评测体系。该体系将帮助医疗机构在实施过程中持续跟踪效果、识别潜在问题并进行优化调整。以下是对各步骤的详细评估和评测体系设计。 1. 确定模型需求 在医疗机构上线DeepSeek R…...
java 查找连个 集合的交集部分数据
利用了Java 8的Stream API,代码简洁且效率高 import java.util.stream.Collectors; import java.util.List; import java.util.HashSet; import java.util.Set;public class ListIntersection {public static List<Long> findIntersection(List<Long> …...
Hadoop管理页看不到任务的问题
这个yarn分配任务了但是为空 在$HADOOP_HOME/conf/mapred-site.xml 原来的配置文件基础之上添加: <property><name>mapreduce.framework.name</name><value>yarn</value></property> 重启之后就好了...
cmake、CMakeLists.txt、make、ninja
文章目录 一、概念0.cmake官网1.什么是cmake2.为什么使用cmake3.CMakeLists.txt 二、CMakeLists.txt语法:如何编写CMakeLists.txt,语法详解(0)语法基本原则(1)project关键字(2)set关键字(3)message关键字(4)add_executable关键字(5)add_subdirectory关键…...