没有getter的HashMap?

时间:2011-12-27 16:40:25

标签: android hashmap getter

假设我有一个类似这样的哈希映射

 Map map = new HashMap();
map.put(key, p.getText());

然后得到一个值,我应该这样做:

map.get("key_value");

有没有办法获得这样的值:

map.key_value;

加快申请速度?

3 个答案:

答案 0 :(得分:2)

这不是Map的工作方式。在Java中使用成员运算符(.)进行引用意味着您正在访问变量的公共成员,并且密钥不会存储为映射的公共成员。

答案 1 :(得分:2)

如果预先知道了所有密钥,则可以扩展HashMap并为每个密钥添加自定义getter方法,以便它可以按您的需要工作。但这不会加快程序的执行速度。所有这些都可以为您带来便利。

例如:

public class MyCustomHashMap extends HashMap
{
    public Object key_value()
    {
        return this.get("key_value");
    }
}

答案 2 :(得分:1)

您可以使用values Collection煽动某事吗?您可以获得对象的更原始的表示,但您仍在使用HashMap等。

但我怀疑它会帮助你加速你的应用程序,因为它听起来像一个微不足道的微观改进。

无论如何,如果HashMap真的是你的瓶颈,也许你想用别的东西?