基本上我有一个带有id的枚举。
如果所提供的id等于枚举的id,并且如果返回它,那么创建一个将获取id的hashmap并给你枚举或迭代所有enums是否会更快。
如果重要,则有5个枚举。
答案 0 :(得分:7)
HashMaps专门用于通过密钥检索对象,即使有很多条目也很快。通常,对列表或类似集合的顺序扫描会慢得多。
但如果你只有5件物品,那就没有什么区别了。
编辑:第二个想法是,对于这么少的对象,您可能最好使用顺序扫描,因为计算哈希码的额外工作可能会超过优势。但差别很小,不值得打扰。
答案 1 :(得分:1)
散列映射的查找复杂度为O(1),而迭代自然具有O( n )。也就是说,对于只有5个枚举值,迭代的平均速度可能会更快,并且当您只是迭代.values()
时,它不需要额外的数据结构。
答案 2 :(得分:1)
如果您将Enum作为键,则应使用EnumMap。这基本上包含了一个值数组,并且比使用HashMap更快。