java中怎么样将方法中的map内数据保存以便在下次调用时继续使用

在方法中定义一个map,然后将一条数据注入,在主函数中多次调用这个方法,可是我每调用一次,map中的数据只有本次调用的一条数据,怎么样使每次调用后map中的数据不丢失

你可以把这个map定义为类成员,如果是通过静态方法向map里面加东西,那就定义为静态成员。总之,定义为方法内的局部变量是肯定不行的,因为它的作用域是方法内,执行一次方法后,这个map变量的生命周期就到了,下次再调用的时候,是产生一个新的map。(java不像c,c++,没有局部静态变量)追问

方法内怎么缓存数据?

追答

方法内把数据存到类的静态成员中(或是对象的成员中)也可以叫缓存数据。缓存数据并不是说一定是方法内定义变量来存数据,即使不是类成员,如果是在外部定义初始化的一个map,通过参数传入方法内,那么也可以做到多次调用此方法都能操作同一个map。或者你把原题完整贴出来看看。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-08-13
两种方法
1、把map定义成main方法所在类的全局变量
2、在main中定义局部变量 Map map,再把map作为一个形参传入那个“往map中注入数据”的方法中调用追问

方法内怎么缓存数据?

追答

局部变量 会在 它所在的 方法 被调用 结束后被释放
所以我觉得你的要求不可能实现

追问

the method should cache the results, so
that when the method is given a string previously encountered, it will simply
retrieve the stored result.
题目就是这么要求的啊

追答

那就写在文件里吧,每次都去读这个文件,这样的话,就算程序重启,字符串还能读取出来,简直时题目要求的无敌加强版。

public MapDealMethod()
{
if(文件不存在)//第一次调用
{
创建文件
}
esle//以后调用
{
读取文件内容
}

}
大概就是这么个框架,少年,具体自己处理吧。
记得采纳

本回答被提问者采纳
第2个回答  2014-06-12
map不要定义在方法中,在类中定义为全局变量
第3个回答  2014-06-12
不要把map定义在方法中
直接定义在class下面
定义成全局变量
相似回答