vector - 我应该在稀疏的 Vec 或 Rust 的 HashMap 中存储具有大孔的系列中的无序值吗?
问题描述
我有一个包含数百万行数据的文件。每一行都有一个唯一的 id 并且 id 系列很多时候没有顺序,并且可以包含孔。1, 2, 10, 6, 3, 18
例如。
我希望能够通过 ID 快速访问行,所以我认为将它们存储在 a 中HashMap
可能是一个可行的解决方案,但是当它们可以存储在Vec
.
Vec
当系列中的孔变得非常大(1, 2, 3, 1000000, 1000001...
等等)时,将它们存储在一个好的解决方案中吗?我将丢弃很多行。应该使用某种HashMap
?
解决方案
HashMap肯定会很好用。根据数据的不同,稀疏的 Vec 可能会更好,也可能会很差,或者可能完全失败。最安全和最简单的选择是使用 HashMap 并在您发现需要优化此特定功能(您可能不会)时重新访问该问题。
推荐阅读
- css - 如何定位伪元素 SVG 中的元素
- reactjs - 阻止用户在 React JS 中打开同一网站的多个选项卡
- javascript - 在 IOS 15 中更改方向后,Web 应用程序屏幕变黑
- postgresql - 鉴于视图不起作用,time_bucket 的 TimescaleDB GROUP BY
- javascript - 赛普拉斯 - 使用参数调用函数
- c# - WPF DataGrid 带有一键组合框,显示按枚举名称排序的枚举值
- css - 不同鼠标离开的 CSS 过渡
- amazon-dynamodb - DynamoDB 如何获取项目及其相关项目的关系?
- java - 如何从Java中的不同类访问具有特定索引的对象数组?
- pandas - 熊猫图只有两个日期作为索引