我将一些数据存储在一个哈希图中。现在,我想根据用户输入修改与键相关联的值,并永久地存储它们。
为了让我更清楚,我有一个如下的hashmap:
public static HashMap<String,Integer> mymap= new HashMap<String,Integer>();
mymap.put("Hi",2);
mymap.put("Hello",3);我会从一些用户那里获取反馈,如果他愿意,那么我会,比方说,在Hello上存储4。我希望保存这些更改以供将来参考。
我听说过Java语言中的Reflection应用程序接口,但不确定它是否能达到这个目的。
发布于 2012-10-17 04:25:11
反射API允许操作/访问以其他方式无法访问的数据-或者在编译时未知的类上的一些数据。
在这里,它真的是不需要的。您所需要做的就是将元素put()到映射中,它将从您刚刚插入的键中“移除”旧值(如果它已经存在),并将其(键)与新添加的值关联起来。
所以,基本上-所有你需要做的就是myMap.put(key,newValue),Map的实现(当然,假设它是正确的)将会处理剩下的事情。
如果你想在程序运行之间存储数据--你必须把它(地图)保存在磁盘上。为此,您可以使用serialization,或者在某些情况下可以使用Properties。
确保在程序启动后从磁盘加载地图,否则将看不到存储的值。
发布于 2012-10-17 04:28:20
就说吧,mymap.put(key,value);。它将更新匹配键的值。如果不在那里,它将插入一个新条目,例如
mymap.put("Hello",4);如果您不想为新的密钥插入新值,例如World,您可以像这样打勾:
if(mymap.containsKey(key)){
mymap.put(key,value);
}else{
//no existing key found
}发布于 2012-10-17 04:38:49
Preferences API使得在磁盘上存储少量数据变得很容易。
这里有一个介绍:http://docs.oracle.com/javase/1.4.2/docs/guide/lang/preferences.html
https://stackoverflow.com/questions/12922741
复制相似问题