我目前正在创建Rock,Paper Scissors程序的原型,我需要以整数/字符串格式存储选择。
在搜索速度和内存使用方面,使用什么“最佳”集合?前提是计算机将选择一个随机数,然后搜索键值对以找到适当的选择名称,以便稍后在程序中使用
编辑:
为了澄清,集合中最多将有5个键值对,以整数作为键
根据评论进一步澄清。我正在为少量配对(最多5个)寻找一个键/值集合
答案 0 :(得分:5)
如果您的密钥为ArrayList
,则HashMap
或Integer
会没问题。
两者都是O(1)并期望唯一的密钥。
否则,如果它们是String
,HashMap
只适合。
答案 1 :(得分:2)
HashMap
将是最好的。 get()
时间复杂度O(1)
。 O(1)意味着与元素数量无关,即常数。
答案 2 :(得分:2)
如果您需要Map
并且不需要SortedMap
,HashMap
几乎总是正确的选择。
请注意HashMap
的{{3}}有一个参数告诉它地图的初始大小。构造函数将使用它为地图分配合理数量的内存,如果地图的大小可能小于默认大小(one of the constructors),这将非常有用。
答案 3 :(得分:0)
我建议这是一个使用enum
和EnumMap
的绝佳机会,它会针对您正在考虑的场景进行优化 - 即一组离散的可能键。