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



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

我有课程

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

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

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

任何示例代码将不胜感激。

  1. 当使用'cache.set(key,val('时,明显的效率因素是键和哈希函数的选择。然而,在 99%我项目中的百分比足够高效,可以使用简单明了的字符串键(例如,如果您的企业需要按出版商+标题缓存书籍,那么"penguin_prideAndPrejudice"可能会很好(。但是,确定的唯一方法是在数据样本上对其进行测试!

    1. 作为旁注,虽然这不是你最初的问题,但我建议考虑线程安全(HashMap 不是线程安全的,所以对于并发环境,请考虑同步或 ConcurrentHashMap - 只是要注意某些版本中的错误(
    2. 有第三方缓存,例如
    3. 番石榴 ,可能有助于高级缓存注意事项,例如过期。

最新更新