首页 > 解决方案 > 我应该在稀疏的 Vec 或 Rust 的 HashMap 中存储具有大孔的系列中的无序值吗?

问题描述

我有一个包含数百万行数据的文件。每一行都有一个唯一的 id 并且 id 系列很多时候没有顺序,并且可以包含孔。1, 2, 10, 6, 3, 18例如。

我希望能够通过 ID 快速访问行,所以我认为将它们存储在 a 中HashMap可能是一个可行的解决方案,但是当它们可以存储在Vec.

Vec当系列中的孔变得非常大(1, 2, 3, 1000000, 1000001...等等)时,将它们存储在一个好的解决方案中吗?我将丢弃很多行。应该使用某种HashMap?

标签: vectorrusthashmap

解决方案


HashMap肯定会很好用。根据数据的不同,稀疏的 Vec 可能会更好,也可能会很差,或者可能完全失败。最安全和最简单的选择是使用 HashMap 并在您发现需要优化此特定功能(您可能不会)时重新访问该问题。


推荐阅读