Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用两种不同的方法获取数据_Java_Caching_Methods_Hashmap - Fatal编程技术网

Java 用两种不同的方法获取数据

Java 用两种不同的方法获取数据,java,caching,methods,hashmap,Java,Caching,Methods,Hashmap,我有一个项目,其中包括两种不同的静态主要方法。也就是说,为了我的目的,我需要单独运行它们。请注意,这两个方法必须分别执行。我运行第一个方法,让我们将其称为“getA”。getA方法只是将所有唯一的数据存储到HashMap中,并完成其工作。之后,我准备执行getB方法,但重点是我需要使用getA方法放置所有数据的hashmap,而我无法确定如何从getB方法访问这个hashmap,因为这些方法是唯一的,只有这个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。我如何实现这个过程?我应该使用外部库还是像我前面说的那样使用缓存


谢谢你的建议和方法

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

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

听起来好像您有两个不同的项目恰好占用同一文件夹。您需要重新构造代码或存储数据某个地方有一个磁盘。