我有很多元素。这是一个嵌入式平台,每个循环我需要对所有设置了一些标志的元素进行操作。
任何时候只有少数元素设置了标志。由于性能原因,我无法通过整个阵列运行。
我意识到一个解决方案可能是构建具有标志集的元素的数组索引列表,并运行此列表而不是整个数组。每次设置/重置标志时,都会更新此列表。
我猜这是一个古老而“解决”的问题,但我错过了正确描述它的词汇。这个问题的最佳实践是什么,它叫什么?
谢谢
答案 0 :(得分:0)
你要找的单词是一套。你将标记的那些保留在某种子组(你称之为列表)中是正确的,但是列表是有序的。您不需要此排序功能来存储一堆标记元素;你想要一个集合,它是数组中所有元素的子集。
没有订购它们会给您带来性能优势,特别是在删除时,因为您不必移动列表中删除的所有元素。同样在随机位置访问时,如果使用HashSet,则可以获得恒定时间。在一个有点“坏”的方面,迭代设置对象通常比列表更不直观,使您使用Iterator对象。