Select data structures based on their performance characteristics and actual usage patterns. When implementing algorithms:
// Less efficient: Using Vec when duplicates don't matter
let mut used_exports = Vec::new();
used_exports.push(Export::Named("React")); // This might be added many times
// More efficient: Using a Set to automatically handle duplicates
let mut used_exports = FxHashSet::default();
used_exports.insert(Export::Named("React")); // Will only be stored once
// HashSet.insert() returns a boolean indicating if the element was newly inserted
if !set.insert(key) {
return; // Element was already present
}
// HashMap.insert() returns Option<V> with the previous value, if any
if map.insert(key, value).is_some() {
return; // Key was already present (previous value returned)
}
Choosing the right data structure is often the difference between an efficient algorithm and one that performs poorly at scale.
Enter the URL of a public GitHub repository