使用Map(作为Cache)在类之间共享变量

时间:2017-11-10 22:24:58

标签: java caching hashmap

我想实现一个公共缓存变量存储,以便在类之间共享。我有很多课,因为我使用黄瓜java webdriver,有必要在步骤,页面对象/类之间共享。

我有班级

public class Cache {
    private HashMap<String, String> cache = new HashMap<String, String>();

    public HashMap<String, String> getCache() {
        return cache;
    }
}

但问题是,设置键值对的最有效方法是什么?

我的想法是使用getter来获取和使用存储的变量,例如cache.get(“KEY”),我得到了值。如何在此缓存中以有效的方式存储变量?

任何示例代码都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

  1. 使用&#39; cache.set(key,val)&#39;时,明显的效率因素是 选择键和hash function。但是,在99% 我的项目百分比足以使用a 直截了当,直观的字符串键(例如,如果您的业务需要按发布者+标题缓存书籍,那么&#34; penguin_prideAndPrejudice&#34;可能会很好)。 但是,唯一可以确定的方法是在数据样本上进行测试!

    1. 作为旁注,虽然它不是你原来的问题,但我建议安全地考虑线程(HashMap不是线程安全的,所以对于并发环境考虑同步或ConcurrentHashMap - 只是{{ 3}})
    2. 有第三方缓存,例如beware of bugs in some versions,可能有助于高级缓存注意事项,例如过期。