以两种单独的方法获取数据

时间:2014-05-18 09:46:00

标签: java caching methods hashmap

我有一个项目,其中包含两个不同的静态主要方法。那就是我需要为了我的目的单独运行它们。请注意,这两种方法必须彼此分开执行。我先运行第一种方法,然后将其称为" getA"。 getA方法只是将所有唯一数据存储到HashMap中,并完成其工作。之后,我准备执行getB方法,但重点是我需要使用getA方法将所有数据放入其中的hashmap,而我无法弄清楚如何从getB方法获取此hashmap因为这些方法是唯一的,只有这个hashmap相互关联。实际上我可能需要一些缓存来使它们成为可能。

让我举一个例子说明:

-------- start getA method
-------- store data into hashmap
-------- done

-------- start  getB method after (1/2/3 hour(s)) (the getA method must be run before this method)
-------- obtain the data that the hashmap stores
-------- done

请注意,这个getB方法可能会在2小时后运行,我不知道。我想随时到达这个hashmap。我怎样才能实现这个过程?我应该使用外部库还是我之前说的像缓存这样的东西?

感谢您的任何建议和方法!

2 个答案:

答案 0 :(得分:1)

我想,很有可能将来自HashMap的数据存储到数据库(或文件)中以保持持久性,并在2小时后实现运行第二种方法的目标。然后,即使您关闭了应用程序,所有数据也将作为记录存储在某个数据库表中。但是,如果您不想使用持久性数据存储,并且您也不想以这种方式关闭应用程序并备份数据,那么还有其他可能性使整个应用程序可以看到此HashMap(可能是类之间的可见性) ,适当的方法是将其设置为静态和公共(或受保护)。避免这种方法的第二种可能性是使用 Singleton 设计模式,并使用此HashMap作为其属性。有很多方法可以实现您的目标,具体取决于您的需求。

答案 1 :(得分:0)

如果性能不是问题,并且hashmap不是很大,那么您可以将其序列化为文件并从另一个应用程序反序列化。实际上这是非常基本的持久缓存。或者,您应该有两个应用程序可用的第三个缓存服务器。