arrays - 将数组元素列表保持在特定状态
问题描述
我有很多元素。这是一个嵌入式平台,每个周期我都需要对所有设置了标志的元素进行操作。
任何时候只有少数元素设置了标志。由于性能原因,我无法运行整个阵列。
我意识到一种解决方案可能是构建具有标志集的元素的数组索引列表,并遍历该列表而不是整个数组。然后,每次设置/重置标志时都会更新此列表。
我猜这是一个古老且“已解决”的问题,但我缺少正确描述它的词汇。这个问题的最佳实践是什么,它叫什么?
谢谢
解决方案
你要找的词是一个集合。您将标记的那些保留在某种子组(您称之为列表)中是正确的,但是列表是有序的。您不需要这种排序功能来存储一堆标记的元素;你想要一个集合,它是数组中所有元素的子集。
不让它们排序会给您带来性能优势,特别是在删除时,因为您不必移动列表中您删除的元素之后的所有元素。同样在随机位置访问中,如果您使用 HashSet,您将拥有恒定的时间。在一个有点“坏”的方面,遍历一个集合对象通常比一个列表更不直观,这让你使用一个 Iterator 对象。
推荐阅读
- angular - 使用 [(ngModel)] 与 ngFor 的 2 路数据绑定,数组不会更新行的值
- python - 如何在 python 3.5 上使用 ElementTree 将 csv 转换为 xml 文件
- json - 遍历 Vue 组件字段
- foreign-keys - Peewee 我如何为依赖项调用 post_delete 信号?
- testing - 如何同时测试两个不同的测试组?
- python - 为什么 NPM 使用 2.x-only 语法调用 Python?
- c# - Route config 修剪 get 请求中的所有参数
- oracle - 如何在 mule 4 中插入用户定义的数据类型
- android - 如何使用opengl es在android中实现直方图均衡
- sql-server - 导入平面文件时出现 NULL - SQL Server