鸿蒙语言基础类库:【@ohos.util.Vector (线性容器Vector)】
线性容器Vector
说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
点击或者复制转到。
Vector是一种线性数据结构,底层基于数组实现。当Vector的内存用尽时,会自动分配更大的连续内存区,将原先的元素复制到新的内存区,并释放旧的内存区。使用Vector能够高效快速地访问元素。
Vector和[ArrayList]相似,都是基于数组实现,但Vector提供了更多操作数组的接口。它们都可以动态调整容量,但Vector每次扩容增加1倍,ArrayList只扩容0.5倍。
推荐使用场景: 当数据量大时,一般使用Vector来存取数据。
导入模块
import Vector from '@ohos.util.Vector';
Vector
属性
系统能力: SystemCapability.Utils.Lang
名称 | 参数类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
length | number | 是 | 否 | Vector的元素个数。 |
constructor
constructor()
Vector的构造函数。
系统能力: SystemCapability.Utils.Lang
示例:
let vector = new Vector();
add
add(element: T): boolean
在Vector中尾部插入元素。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 添加进去的元素。 |
返回值:
类型 | 说明 |
---|---|
boolean | 插入成功返回true,失败返回false。 |
示例:
let vector = new Vector();
let result = vector.add("a");
let result1 = vector.add(1);
let b = [1, 2, 3];
vector.add(b);
let c = {name : "lala", age : "13"};
let result3 = vector.add(c);
insert
insert(element: T, index: number): void
在长度范围内任意插入指定元素。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 被插入的元素。 |
index | number | 是 | 被插入的位置索引。 |
示例:
let vector = new Vector();
vector.insert("A", 0);
vector.insert(0, 1);
vector.insert(true, 2);
has
has(element: T): boolean
判断此Vector中是否含有该指定元素。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 指定的元素。 |
返回值:
类型 | 说明 |
---|---|
boolean | 是否包含指定元素。 |
示例:
let vector = new Vector();
let result = vector.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
vector.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
let result1 = vector.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
getIndexOf
getIndexOf(element: T): number
返回指定元素第一次出现时的下标值,查找失败返回-1。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 指定的元素。 |
返回值:
类型 | 说明 |
---|---|
number | 返回指定元素第一次出现时的下标值,查找失败返回-1。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(2);
vector.add(1);
vector.add(2);
vector.add(4);
let result = vector.getIndexOf(2);
getLastIndexOf
getLastIndexOf(element: T): number
返回指定元素最后一次出现时的下标值,查找失败返回-1。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 指定元素。 |
返回值:
类型 | 说明 |
---|---|
number | 返回指定元素最后一次出现时的下标值,查找失败返回-1。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(2);
vector.add(1);
vector.add(2);
vector.add(4);
let result = vector.getLastIndexOf(2);
removeByIndex
removeByIndex(index: number): T
根据元素的下标值查找元素,返回元素后将其删除。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 指定元素的下标值。 |
返回值:
类型 | 说明 |
---|---|
T | 返回删除的元素。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(2);
vector.add(4);
let result = vector.removeByIndex(2);
remove
remove(element: T): boolean
删除查找到的第一个指定的元素。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 指定元素。 |
返回值:
类型 | 说明 |
---|---|
boolean | 删除成功返回true,否则返回false。 |
返回值:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.remove(2);
removeByRange
removeByRange(fromIndex: number, toIndex: number): void
从一段范围内删除元素,包括起始值但不包括终止值。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fromIndex | number | 是 | 起始下标。 |
toIndex | number | 是 | 终止下标。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
vector.removeByRange(2,4);
vector.removeByRange(4,3);
vector.removeByRange(2,6);
replaceAllElements
replaceAllElements(callbackfn: (value: T, index?: number, vector?: Vector) => T, thisArg?: Object): void
用户操作Vector中的元素,用操作后的元素替换原元素并返回操作后的元素。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callbackfn | function | 是 | 回调函数。 |
thisArg | Object | 否 | callbackfn被调用时用作this值。 |
callbackfn的参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | T | 是 | 当前遍历到的元素。 |
index | number | 否 | 当前遍历到的下标值。 |
vector | Vector | 否 | 当前调用replaceAllElements方法的实例对象。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
vector.replaceAllElements((value: number, index: number) => {return value = 2 * value;
});
vector.replaceAllElements((value: number, index: number) => {return value = value - 2;
});
forEach
forEach(callbackfn: (value: T, index?: number, vector?: Vector) => void, thisArg?: Object): void
通过回调函数来遍历Vector实例对象上的元素以及元素对应的下标。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callbackfn | function | 是 | 回调函数。 |
thisArg | Object | 否 | callbackfn被调用时用作this值。 |
callbackfn的参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | T | 是 | 当前遍历到的元素。 |
index | number | 否 | 当前遍历到的下标值。 |
vector | Vector | 否 | 当前调用forEach方法的实例对象。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
vector.forEach((value, index) => {console.log("value:" + value, index)
});
sort
sort(comparator?: (firstValue: T, secondValue: T) => number): void
对Vector中的元素进行一个排序操作。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
comparator | function | 否 | 回调函数。 |
comparator的参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
firstValue | T | 是 | 前一项元素。 |
secondValue | T | 是 | 后一项元素。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
vector.sort((a: number, b: number) => a - b);
vector.sort((a: number, b: number) => b - a);
vector.sort();
subVector
subVector(fromIndex: number, toIndex: number): Vector
根据下标截取Vector中的一段元素,并返回这一段vector实例,包括起始值但不包括终止值。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fromIndex | number | 是 | 起始下标。 |
toIndex | number | 是 | 终止下标。 |
返回值:
类型 | 说明 |
---|---|
Vector | 返回Vector对象实例。 |
返回值:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.subVector(2,4);
let result1 = vector.subVector(4,3);
let result2 = vector.subVector(2,6);
clear
clear(): void
清除Vector中的所有元素,并把length置为0。
系统能力: SystemCapability.Utils.Lang
返回值:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
vector.clear();
clone
clone(): Vector
克隆一个与Vector相同的实例,并返回克隆后的实例。修改克隆后的实例并不会影响原实例。
系统能力: SystemCapability.Utils.Lang
返回值:
类型 | 说明 |
---|---|
Vector | 返回Vector对象实例。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.clone();
getCapacity
getCapacity(): number
获取当前实例的容量大小。
系统能力: SystemCapability.Utils.Lang
返回值:
类型 | 说明 |
---|---|
number | 返回Vector的容量大小。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.getCapacity();
convertToArray
convertToArray(): Array
把当前Vector实例转换成数组,并返回转换后的数组。
系统能力: SystemCapability.Utils.Lang
返回值:
类型 | 说明 |
---|---|
Array | 返回数组类型。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.convertToArray();
isEmpty
isEmpty(): boolean
判断该Vector是否为空。
系统能力: SystemCapability.Utils.Lang
返回值:
类型 | 说明 |
---|---|
boolean | 为空返回true,否则返回false。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.isEmpty();
increaseCapacityTo
increaseCapacityTo(newCapacity: number): void
如果传入的新容量大于或等于Vector中的元素个数,将容量变更为新容量。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
newCapacity | number | 是 | 新容量。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
vector.increaseCapacityTo(2);
vector.increaseCapacityTo(8);
trimToCurrentLength
trimToCurrentLength(): void
把容量限制为当前的length大小。
系统能力: SystemCapability.Utils.Lang
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
vector.trimToCurrentLength();
toString
toString(): string
用","将Vector实例中的元素按顺序拼接成字符串。
系统能力: SystemCapability.Utils.Lang
返回值:
类型 | 说明 |
---|---|
string | 返回对应的字符串。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.toString();
copyToArray
copyToArray(array: Array): void
将Vector实例中的元素按照下标复制到指定数组。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
array | Array | 是 | 指定数组。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let array = ["a", "b", "c", "d", "e", "f"];
let result = vector.copyToArray(array);
getFirstElement
getFirstElement(): T
获取实例中的第一个元素。
系统能力: SystemCapability.Utils.Lang
返回值:
类型 | 说明 |
---|---|
T | 返回第一个元素。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.getFirstElement();
getLastElement
getLastElement(): T
获取Vector实例中的最后一个元素。
系统能力: SystemCapability.Utils.Lang
返回值:
类型 | 说明 |
---|---|
T | 返回最后一个元素。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.getLastElement();
getLastIndexFrom
getLastIndexFrom(element: T, index: number): number
从指定索引向后搜索,返回该元素的下标索引。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 要查找的元素。 |
index | number | 是 | 从指定索引开始搜索。 |
返回值:
类型 | 说明 |
---|---|
number | 返回该元素的下标,如果查找失败,则返回-1。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
vector.add("a");
let result = vector.getLastIndexFrom(4,3);
getIndexFrom
getIndexFrom(element: T, index: number): number
从指定索引向前搜索,返回该元素的下标索引。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
element | T | 是 | 要查找的元素。 |
index | number | 是 | 从指定索引开始搜索。 |
返回值:
类型 | 说明 |
---|---|
number | 返回该元素的下标,如果查找失败,则返回 -1。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
vector.add("a");
let result = vector.getIndexFrom(4, 3);
setLength
setLength(newSize: number): void
设置Vector实例的元素个数。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
newSize | number | 是 | 设置的新长度。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
vector.setLength(8);
vector.setLength(2);
get
get(index: number): T
根据下标值获取Vector实例中的元素。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 查找的下标值。 |
返回值:
类型 | 说明 |
---|---|
T | 返回获取到的元素。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.get(2);
set
set(index: number, element: T): T
将此Vector中指定位置的元素替换为指定元素。
系统能力: SystemCapability.Utils.Lang
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 查找的下标值。 |
element | T | 是 | 用来替换的元素。 |
返回值:
类型 | 说明 HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿 |
---|---|
T | 返回替换后的元素。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.set(2, "A");
[Symbol.iterator]
Symbol.iterator: IterableIterator
返回一个迭代器,迭代器的每一项都是一个 JavaScript 对象,并返回该对象。
系统能力: SystemCapability.Utils.Lang
返回值:
类型 | 说明 |
---|---|
IterableIterator | 返回一个迭代器。 |
示例:
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);// 使用方法一:
for (let item of vector) { console.log("value:" + item);
} // 使用方法二:
let iter = vector[Symbol.iterator]();
let temp = iter.next().value;
while(temp != undefined) {console.log("value:" + temp);temp = iter.next().value;
}
相关文章:

鸿蒙语言基础类库:【@ohos.util.Vector (线性容器Vector)】
线性容器Vector 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 Vect…...

使用Python绘制堆积面积图
使用Python绘制堆积面积图 堆积面积图效果代码 堆积面积图 堆积面积图是面积图的一种扩展,通过堆积多个区域展示不同类别数据的累积变化。常用于显示不同部分对整体的贡献。 效果 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pQbW4F…...

代码还原动态调试之 pstree 乘法变加法
乘法编译后,生成加法汇编,提升CPU执行效率; 406a: 85 ff test %edi,%edi // x ? 0406c: 0f 84 7e 00 00 00 je 40f0 <__sprintf_chkplt0x1980>*/int digits, div;if (x ! 0) {/*4072: 89 fd …...

C++:获取当前可执行核心数(开辟线程)
sysconf(_SC_NPROCESSORS_ONLN) 是一个在 POSIX 兼容系统上广泛使用的函数,它用于获取当前系统上可用的处理器(CPU 核心)的数量。这个函数是 sysconf 函数的一个特定调用,其中 _SC_NPROCESSORS_ONLN 是一个常量,指定了…...

【简历】吉林某985大学:JAVA实习简历指导,面试通过率相当低
注:为保证用户信息安全,姓名和学校等信息已经进行同层次变更,内容部分细节也进行了部分隐藏 简历说明 这份简历是一个顶级985吉林大学的同学投Java职位的简历。因为学校是顶级985,所以他的大厂简历通过率是比较高的,…...

C#中的MD5摘要算法与哈希算法
文章目录 一、哈希算法基础二、MD5 算法原理三、MD5摘要算法四、哈希算法五、C#实现示例MD5算法示例哈希算法示例字符串MD5值对比 六、总结 一、哈希算法基础 哈希算法是一种单向密码体制,它将任意长度的数据转换成固定长度的字符串。这种转换是不可逆的࿰…...

使用 python 构建企业级高可用海量爬虫调度系统
一、引言 在大数据时代,信息的获取与分析成为了企业决策的重要依据。对于营销行业而言,实时抓取和分析竞争对手动态、市场趋势以及用户反馈等数据,是制定有效策略的关键。然而,构建一个高可用的、能够处理海量数据的爬虫调度系统…...

IDEA常用技巧荟萃:精通开发利器的艺术
1 概述 在现代软件开发的快节奏环境中,掌握一款高效且功能全面的集成开发环境(IDE)是提升个人和团队生产力的关键。IntelliJ IDEA,作为Java开发者的首选工具之一,不仅提供了丰富的编码辅助功能,还拥有高度…...

GD32F303之CAN通信
1、CAN时钟 GD32F303主时钟频率最大是120Mhz,然后APB1时钟最大是60Mhz,APB2时钟最大是120Mhz,CAN挂载在APB1总线上面 所以一般CAN的时钟频率是60Mhz,这个频率和后面配置波特率有关 2、GD32F303时钟配置 首先我们知道芯片有几个时钟 HXTAL:高速外部时钟࿱…...

postgres 的dblink使用,远程连接数据库
一.安装下载 dblink create extension if not exists dblink 查看是否已经安装 select * from pg_extension;二.运行,查询数据 其中,第一个参数是dblink名字,也可以是连接字符串。 第二个参数是要执行的SQL查询语句。AS子句用于指定返回结…...

短视频矩阵系统是什么?怎么搭建短视频矩阵系统?一文了解矩阵模式
在数字时代,短视频已成为信息传播的新宠,而短视频矩阵系统则是品牌和个人在短视频领域取得突破的重要工具。那么,短视频矩阵系统究竟是什么?如何搭建这样一个高效的系统?它又能够解决哪些问题呢?本文将为您…...

查看centos硬盘大小
直接上命令 lsblk...

2024 年 6 月公链行业研报:市场回调,比特币和以太坊 Layer 2 表现各异
作者:stellafootprint.network 数据来源:公链 Research 页面 六月,加密货币市场经历了显著的挑战。比特币因即将到来的 Mt. Gox 赔偿支付及政府清算的压力,导致市场不确定性加剧。尽管美国现货以太坊 ETF 的推进带来了积极信号…...

SAP S4 销售组的定义和分配
spro-企业结构-定义-销售与分销-维护销售组 新增一个记录 spro-企业结构-分配-销售与分销-给销售办公室分配销售组...

实时数仓和离线数仓的区别是什么,企业该如何选择合适的数仓架构?
目录 一、离线数仓 1. 离线数仓是什么? 2. 离线数仓的特点 3. 离线数仓的适用场景 二、实时数仓 1. 实时数仓是什么? 2. 实时数仓的特点 3. 实时数仓的适用场景 三、由数仓需求变化带来的数据仓库架构的演变 1. 传统数仓架构 2. 离线大数据架构 3. Lambd…...

花所Flower非小号排名20名下载花所Flower
1、Flower花所介绍 Flower花所是一家新兴的数字货币交易平台,致力于为全球用户提供安全、便捷的交易体验。平台以其强大的技术支持和丰富的交易产品闻名,为用户提供多样化的数字资产交易服务,涵盖了主流和新兴数字货币的交易需求。 2. Flowe…...

程序员有哪些职位?
互联网行业中的岗位种类繁多、五花八门,学习一门技术后,重要的是找到合适的职业发展方向,程序员有哪些职业发展方向?一起来看看吧! 1.架构师 架构师需要程序员有强大的技术实力和深厚的技术积累。建筑师的成长需要经…...

python+Selenium自动化之免登录(cookie及token)
目录 cookie免登录 通过接口获取cookie 启用浏览器绕过登录 添加token 使用登录可以减去每次登录的重复操作,直接操作系统登录后的菜单页面,也可以减少安全验证登录,如图像验证登录的操作。注意:cookie和token都有有效期。 c…...

Web安全:SQL注入
一、SQL注入三要素 1、用户可以对输入的参数值进行修改。 2、后端不对用户输入的参数值进行严格过滤。 3、用户修改后的参数值可以被带入后端中成功执行,并返回一定结果。 二、SQL注入原理 简单来说,用户输入的值会被插入到SQL语句中,然后…...

【LLM-驯化】成功配置多模态大模型InternLM-XComposer微调环境
【LLM-驯化】成功配置多模态大模型InternLM-XComposer微调环境 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文档关注&am…...

C++·继承
面向对象编程有三大特性:封装、继承、多态。 封装我们前几节已经讲过了,第一层封装是将一个数据和方法都封装到一个类中,想让用户访问的定义成公有,不想让用户访问的定义成私有,第二层封装就类似于迭代器、适配器的思想…...

2024最适合小白的Midjourney教程,值得收藏!
一、Midjourney 的提示词 1、提示可以包括一个或多个图像 URL、多个文本短语以及一个或多个参数 1)Image Prompts(图像提示):可以将图像 URL 添加到提示中以影响最终结果的样式和内容。图像 URL 始终出现在提示的前面。文件应以.…...

MVC 返回集合方法,以及分页
返回一个数据集方法 返回多个数据集方法 》》定义一个Model public class IndexMoel {public List<UserGroup> UserGroup{get;set;}public List<User> User{get;set;}}》》》控制器 //db 是 EF 中的上下文 var listnew IndexModel(); list.UserGroupdb.UserGro…...
昇思MindSpore学习笔记6-05计算机视觉--SSD目标检测
摘要: 记录MindSpore AI框架使用SSD目标检测算法对图像内容识别的过程、步骤和方法。包括环境准备、下载数据集、数据采样、数据集加载和预处理、构建模型、损失函数、模型训练、模型评估等。 一、概念 1.模型简介 SSD目标检测算法 Single Shot MultiBox Detecto…...

vb.netcad二开自学笔记9:界面之ribbon
一个成熟的软件怎么能没有ribbon呢,在前面的框架基础上再加个命令AddRibbon <CommandMethod("AddRibbon")> Public Sub AddRibbon() Dim ribbonControl As RibbonControl ComponentManager.Ribbon Dim tab As RibbonTab New RibbonTab() tab.Tit…...

学习笔记——动态路由——OSPF链路状态通告(LSA)
十、OSPF链路状态通告(LSA) 1、链路状态通告简介 (1)LAS概述 链路状态通告(Link State Advertisement,LSA)是路由器之间链路状态信息的载体。LSA是LSDB的最小组成单位,LSDB由一条条LSA构成的。是OSPF中计算路由的重要依据。 LSA用于向其它邻接OSPF路…...

模拟防止重复提交
gitee地址(需要自取)AopProxy重复提交: 防止重复提交 (gitee.com) RestController public class SubmissionController {Autowiredprivate SubmissionService submissionService;private static Jedis jedis new Jedis("localhost",6379);pr…...

C++:strcut与class的区别
在C中,struct和class在语法上非常相似,但它们之间确实存在一些关键的差异,这些差异主要体现在成员的默认访问权限和继承的默认方式上。然而,从更广泛的角度来看,它们都可以用来定义自定义数据类型,包含数据…...

科研绘图系列:R语言两组数据散点分布图(scatter plot)
介绍 展示两组数据的散点分布图是一种图形化表示方法,用于显示两个变量之间的关系。在散点图中,每个点代表一个数据点,其x坐标对应于第一组数据的值,y坐标对应于第二组数据的值。以下是散点图可以展示的一些结果: 线性关系:如果两组数据之间存在线性关系,散点图将显示出…...

【EasyExcel】根据单元格内容自动调整列宽
1.自定义Excel列宽样式策略类 import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.e…...