首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

List,Set,Map三者的区别

底层使用的是 双向链表 数据结构(JDK1.6之前为循环链表,JDK1.7取消了循环。...比如:执行add(E e)方法的时候, ArrayList 会默认在指定的元素追加到此列表的末尾,这种情况时间复杂度就是O(1)。...因为在进行上述操作的时候集合中 i 和 i 个元素之后的(n-i)个元素都要执行向后位/向前一位的操作。...内存空间占用: ArrayList的空 间浪费主要体现在在list列表的结尾会预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗比ArrayList更多的空间(因为要存放直接后继和直接前驱以及数据...iterator遍历(foreach遍历底层也是通过iterator实现的,),大size的数据,千万不要使用普通for循环 补充内容:双向链表和双向循环链表 双向链表: 包含两个指针,一个prev指向前一个节点

1.7K10

ChatGPT与Excel结合_编写VBA宏

案例1 比如我的需求是:写一个基本的Excel vba宏,用于表格中的39每一数据转换为一个新的工作簿 VBA宏如下: Sub SplitRowsToNewWorkbooks()...End Sub 请将代码中的"路径\文件.xlsx"替换为你希望保存的路径和文件。运行该宏后,会将39的每一数据复制到一个新的工作簿,并将其保存在指定的路径下。...操作如下: 1️⃣ 2️⃣需要注意修改代码的行数列数表格数,确定没啥问题 3️⃣ 4️⃣在这里需要注意“代码中的"路径\文件.xlsx"替换为你希望保存的路径和文件”...生成新表格,但“回炉再造”一遍就好,重要的是学会ChatGPT与Excel结合来编写VBA宏 ---- 案例2 又比如我的需求是:编写一个Excel VBA宏,工作薄,每个工作表中的图片,移动到A1单元格上...End Sub 运行该宏后,它会遍历工作薄中的每个工作表,并将每个作表中的图片移动到A1单元格的位置。在移动图片之后,会弹出一个提示框显示操作已完成。

51110
您找到你想要的搜索结果了吗?
是的
没有找到

ChatGPT与Excel结合_编写VBA宏

案例1 比如我的需求是:写一个基本的Excel vba宏,用于表格中的39每一数据转换为一个新的工作簿 VBA宏如下: Sub SplitRowsToNewWorkbooks()...End Sub 请将代码中的"路径\文件.xlsx"替换为你希望保存的路径和文件。运行该宏后,会将39的每一数据复制到一个新的工作簿,并将其保存在指定的路径下。...操作如下: 1️⃣ 2️⃣需要注意修改代码的行数列数表格数,确定没啥问题 3️⃣ 4️⃣在这里需要注意“代码中的"路径\文件.xlsx"替换为你希望保存的路径和文件”...生成新表格,但“回炉再造”一遍就好,重要的是学会ChatGPT与Excel结合来编写VBA宏 ---- 案例2 又比如我的需求是:编写一个Excel VBA宏,工作薄,每个工作表中的图片,移动到A1单元格上...End Sub 运行该宏后,它会遍历工作薄中的每个工作表,并将每个作表中的图片移动到A1单元格的位置。在移动图片之后,会弹出一个提示框显示操作已完成。

43720

Vim实用技巧

不对未保存的修改进行检查;:wall把所有改变的缓冲区写入硬盘 C.工作区切分成窗口 1.s,v,水平和垂直切分 2.w循环切换窗口 3....make dir来进行补救 八、用动作命令在文档中移动 A.让手指保持在本位上 1.h左移一列,l右移一列,j下移一,k上 2.只用h和l来解决“差一错误”(off-by-one errors...B.区分实际与屏幕 1.gj、gk向下、向上移动一个屏幕 2.g0、g^、g$,移动到屏幕首、第一个非空白字符、行尾 C.基于单词移动 1.w正向移动到下一单词的开头,b反向移动到当前单词/...%命令允许我们在一组开、闭括号间跳转,可作用于()、{}以及[] 九、在文件间跳转 A.遍历跳转列表 1.:jumps查看跳转列表 2....、命令,前进或后退跳转 B.遍历改变列表 1.:changes可以查看改变列表 C.跳转到光标下的文件 1.gf命令打开文件 2.

2.6K30

Linux之vi和vim编辑器

:only|关闭所有窗口,只保留当前窗口 :bn|切换到下一个文件 :bp|切换到上一个文件 :args|查看当前打开的文件列表,当前正在编辑的文件会用[]括起来 :e ftp://192.168.10.76...= ]] 數 → G 動到 n 冒号+行号,回车 比如跳到240就是 :240回车 h 左移一个字符 l 右移一个字符,这个命令很少用,一般用w代替。...$ 移动到行尾 3$ 移动到下面3的行尾 f(find) fx找到光标后第一个为x的字符,3fd找到第三个为d的字符。...p 在当前光标后粘贴,如果之前使用了yy命令来复制一,那么就在当前行的下一粘贴。 shift+p 在当前行前粘贴 :1,10 co 20 1-10插入到20之后。...利用p命令可以对剪切的内容进行粘贴 :1,10d 1-10剪切。利用p命令可将剪切后的内容进行粘贴。 :1, 10 m 20 1-10动到20之后。

2K10

使用OpenCV和Python生成电影条形码

一旦我们知道了我们想要包含在电影条码中的视频的总数,我们就可以循环遍历每个并计算RGB平均值,并保存到平均值列表,该列表就是我们实际的电影条码数据。 任务3:显示电影条码。...给定一组的RGB平均值列表,我们可以使用这些数据创建显示在屏幕上的实际电影条码可视化。...4),并增加处理的总数(11)。...然后应用——skip命令行参数来确定当前是否应该包含在avgs列表中(14)。 如果应该被保留,我们计算的RGB平均值并更新avgs列表(1516)。...对于每个RGB平均值,我们分别对它们进行循环(10)并使用cv2.rectangle函数绘制电影条码中的每个条形(1112)。

1.5K10

使用OpenCV,Python和深度学习进行人脸识别

我们还需要分别在循环之前初始化两个列表, knownEncodings 和 knownNames。这两个列表包含数据集中每个人的面部编码和对应名称(67)。 然后开始循环。...该函数返回True / False值的列表 ,每个值对应数据集中的每个图像。对于我们数据集中有218个图像,因此返回的列表具有218个布尔值。...我们还使用坐标来计算我们绘制人物名称文本的位置(5),然后将名称文本放在图像上(67)。如果脸部边框位于图像的最上方,我们需要将文本移动到方框内的顶部(在5处理),否则文本会消失。...稍后我们可以选择处理后的视频写入磁盘,因此我们writer初始化为None (9)。预留2秒以让我们的相机启动(10)。...2开始, 我们的第一步是 从视频流中获取一 4)。

10K71

如何用7个简单的步骤,在Firefox开发工具中调试JavaScript

单击“Save”按钮,表单进行一些处理,数据将被发送到您的(虚构的)服务器。 ? 此表单的代码有三个功能: 单击处理程序。 大写字符串功能。 一个保存功能。 ?...步骤5:逐步完成代码 现在我们知道了如何在代码中设置断点,我们想要遍历每一,这样我们就可以知道哪里出错了。首先,在7中放置一个断点——就在Add按钮的单击处理程序中,这样我们就可以从头开始。...您可以更仔细地查看堆栈跟踪,发现是来自13的调用导致了错误。你知道13与中间值有关。因此,您应该精力集中在通过正确设计输入来重现错误。...从7开始,使用“Step Over”按钮,直到13。活动线显示为淡蓝色背景,上下有线。 ? 现在,您可以使用“Step In”按钮移动到对capitalizeString函数的调用中。 ?...您只需单击这个列表中的一个项目,您将被回该函数。请记住,执行中的当前位置没有改变,因此使用Step Over按钮将从调用堆栈的顶部继续。 步骤6:确定应用程序的状态。

4.1K60

Linux学习笔记之vim操作指令大全

h或退格: 左移一个字符; l或空格: 右移一个字符; j: 下移一; k: 上; gj: 移动到一段内的下一; gk: 移动到一段内的上一; +或Enter: 把光标移至下一第一个非空白字符...w: 前一个单词,光标停在下一个单词开头; W: 移动下一个单词开头,但忽略一些标点; e: 前一个单词,光标停在下一个单词末尾; E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点; b:...nG: 到文件n。 :n 移动到n。 :$ 移动到最后一。 H: 把光标移到屏幕最顶端一。 M: 把光标移到屏幕中间一。 L: 把光标移到屏幕最底端一。...ctrl+e: 向下滚动一。 ctrl+y: 向上滚动一。 n%: 到文件n%的位置。 zz: 当前行移动到屏幕中央。 zt: 当前行移动到屏幕顶端。 zb: 当前行移动到屏幕底端。.../pattern/+number: 光标停在包含pattern的后面number上。 /pattern/-number: 光标停在包含pattern的行前面number上。

2.7K20

Vim命令使用说明

k: 上; gj: 移动到一段内的下一; gk: 移动到一段内的上一; +或Enter: 把光标移至下一第一个非空白字符。...w: 前一个单词,光标停在下一个单词开头; W: 移动下一个单词开头,但忽略一些标点; e: 前一个单词,光标停在下一个单词末尾; E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点; b:...nG: 到文件n。 :n 移动到n。 :$ 移动到最后一。 H: 把光标移到屏幕最顶端一。 M: 把光标移到屏幕中间一。 L: 把光标移到屏幕最底端一。...ctrl+e: 向下滚动一。 ctrl+y: 向上滚动一。 n%: 到文件n%的位置。 zz: 当前行移动到屏幕中央。 zt: 当前行移动到屏幕顶端。.../pattern/+number: 光标停在包含pattern的后面number上。 /pattern/-number: 光标停在包含pattern的行前面number上。

2.6K10

Python编程 深入浅出递归

给定一个列表,返回所有数的和,列表中数字的个数不定,需要一个循环和一个累加变量来迭代求和,那现在既不能用 for 循坏,也不能用 while 循环,我们可以用递归的方法来解决问题!...数列求和处理的数据对象是一个列表,而基本结束条件是长度为 1 的列表,那递归算法就要改变列表并向长度为 1 的状态演进,代码实现时具体做法是列表长度减少1。...每次调用,压入栈的现场数据称为栈,当函数返回时,要从调用栈的栈顶取得返回地址,恢复现场,弹出栈,按地址返回。...推荐一个可以在线玩汉诺塔小游戏的网站: http://www.htmleaf.com/Demo/201508272485.html 3 个盘子演示如下: 思路: 盘片塔从开始柱,经由中间柱...,移动到目标柱:首先将上层N-1个盘片的盘片塔,从开始柱,经由目标柱,移动到中间柱;然后N个(最大的)盘片,从开始柱,移动到目标柱; 最后放置在中间柱的 N-1 个盘片的盘片塔,经由开始柱,移动到目标柱

39710

JS 算法与数据结构之列表

以下描述如何实现该抽象数据类型(ADT) 一、 什么是列表 列表是一组有序的数据,每个列表中的数据项称为元素 在 JS 中,列表的元素可以是任意数据类型,且列表保存多少元素没有事先限定 要设计列表的抽象数据类型...,我们需要列出列表的属性及方法: 1、列表的属性 属性 作用 listSize 列表的元素个数 pos 列表的当前位置 length 返回列表中元素的个数 2、列表的方法 方法名 作用 clear...front 列表的当前位置移动到第一个元素 end 列表的当前位置移动到最后一个元素 prev 当前位置后移一位 next 当前位置前一位 hasNext 判断后一位 hasPrev 判断前一位...currPos 返回列表的当前位置 moveTo 当前位置移动到指定位置 二、列表的实现 我们先从定义构造函数开始实现 function List() { this.listSize = 0...,最后一 listSize 和 pos 的值设为 1,表明这是一个新的空列表 8、contains 方法 判断给定值是否在列表中 function contains(element) { for

1.7K10

夜曲编程Python入门课程Pro

13 课 数据结构小结 定义方式 定义元组、列表和字典的方式如图所示,分别使用小括号 () 、方括号 [] 和花括号 {} 。 三种数据结构的每一项元素都是由逗号分隔开。... 14 课 for循环的基础操作 遍历字典的键 for 循环遍历字典的键,有两种方法可以使用: for 循环遍历字典; 这个方法和 for 循环遍历列表的格式类似。...for循环遍历字典中的所有键; 使用 for 循环遍历 dict.keys(),字典中的键赋值给变量,再通过 print() 输出变量。...1 print(f"{count}是{name}") 16 课 条件循环语句 for循环和while循环的区别 \1. for循环常用于处理列表内的每个元素。... 18 课 循环的综合应用 for i in range()的功能是:遍历一个整数列表。 其中range()的功能是:创建一个整数列表

4.3K53

【总结】vim命令使用总结,该来的还是躲不掉啊晕

命令大全,最详细(建议收藏) 光标的移动 h - 左移光标 j - 下移光标 k - 上光标 l - 右移光标 gj - 下移光标(折行文本) gk - 上光标(折行文本) H - 移动到当前页面顶部...Esc - 退出插入模式 编辑文本 r - 替换当前字符 R - 在 ESC 按下之前,替换多个字符 J - 下一合并到当前行, 并在两部分文本之间插入一个空格 gJ - 下一合并到当前行,...,$d - 删除当前行到文件末尾 :.,1d - 删除当前行到文件开头 :10,$d - 从 10 到文件末尾 :g/{pattern}/d - 删除所有包含模式的 :g!...:b[uffer]# - 切换到 # 个缓冲区 :b[uffer] file - 用文件切换缓冲区 :ls or :buffers - 列出所有打开的缓冲区 :sp[lit] 文件 - 新建缓冲区打开... - - 上次剪切的短于一的文本  = - 表达式寄存器  _ - 黑洞寄存器 标记 :marks - 标记列表 ma - 设置当前位置为标记 a `a - 跳转到标记 a 的位置 y`a -

50921

PyGame:Python 游戏编程入门-1

没有这些,就没有pygame. 8 设置程序的显示窗口。您提供一个列表或一个元组来指定要创建的窗口的宽度和高度。这个程序使用一个列表来创建一个每边 500 像素的方形窗口。... 11 12 设置了一个游戏循环来控制程序何时结束。您将在本教程后面介绍游戏循环 15 到 17 扫描并处理游戏循环中的事件。您稍后也会参加活动。...) 26显示的内容更新到屏幕上。...要退出循环和游戏,请设置running = False. 游戏循环 29 开始。 31 启动事件处理程序,遍历事件队列中当前的每个事件。...如果键是Esc键,用 表示K_ESCAPE,则通过设置 退出游戏循环running = False。 41 42对名为 的事件类型进行了类似的检查QUIT。

2K40

用例子理解递归

而递归是函数体中调用自己,在使用递归的同时,一定要注意结束条件,如果不加控制,无休止的调用自己,直到堆栈溢回出,因为函数每调用一次就会在栈上创建一个栈,函数调用结束后就会弹出该栈,而栈的大小不是无限的...而递归调用的特点是每递归一次,就要创建一个新的栈,而且还要保留之前的环境(栈),直到遇到结束条件。所以递归调用一定要明确好结束条件,不要出现死循环,而且要避免栈太深。。       ...所以我觉得不能单一的循环和递归做比较,就拿顺序结构,分支结构,循环结构,模块化结构,这四大结构来说,循环一直是作为一个基础内容,而递归是为了解决特定问题而出现的算法,本质上也属于循环的一种,对于上述问题...void move(int id, char form, char to) { cout << "" << sum++ << "步:" << id << "号盘子从" << form << "移动到..."" << sum++ << "步:" << id << "号盘子从" << form << "移动到" << to<<endl; } void fun(int n, char a, char b,

1K10

文心一言 VS 讯飞星火 VS chatgpt (86)-- 算法导论8.2 3题

三、用go语言,假设我们在 COUNTING-SORT的 10循环的开始部分,代码改写为: 10 for j = 1 to A.length 试证明该算法仍然是正确的。它还稳定吗?...2.遍历输入列表 A, count[a] 加 1。 3.再次遍历输入列表 A,每个元素 a 插入到其计数数组 count[a] 的末尾。 4.返回计数数组 count。...现在我们来看看 10 循环开始部分改写为for j = 1 to A.length后的算法逻辑。假设我们 10 改写后的代码为 B,原始代码为 A。...2.遍历输入列表 A, count[a] 加 1。 3.再次遍历输入列表 A,每个元素 a 插入到其计数数组 count[a] 的末尾。...综上所述, COUNTING-SORT 算法的 10 循环开始部分改写为for j = 1 to A.length后,算法仍然正确,并且稳定。

15660

教程 | 摄影爱好者玩编程:利用Python和OpenCV打造专业级长时曝光摄影图

更不用说,我们需要成为一熟练的摄影师! 作为一计算机视觉研究员和程序员,本文作者知道很多关于图像处理的知识。虽然他是个菜鸟摄影师,但有一种通过应用多图像平均法来模拟长时曝光效果的方法。...我们在 16 初始化 RGB 通道平均值,稍后会将其合并到最终的长时曝光图像中。我们还初始化了 17 的总帧数。...请注意循环语句退出条件 :如果未从视频文件流的末尾抓取,我们退出循环(31 和 32 )。...最后,我们增加总帧数,以便能够保持运行时平均值( 51 )。...一旦我们遍历完视频文件中的所有,我们就可以(平均)通道值合并成一个新图像并将其写入磁盘: # merge the RGB averages together and write the output

1.6K140
领券