我将一些数据存储在哈希映射中。现在,我想根据用户输入修改与键关联的值,并以永久方式存储它们。
为了让自己更清楚,我有一个像这样的散列图:
public static HashMap<String,Integer> mymap= new HashMap<String,Integer>();
mymap.put("Hi",2);
mymap.put("Hello",3);
我将从某个用户的用户那里获得反馈,如果他想要,那么我会将4存储为Hello。我希望保存这些更改以供将来参考。
我在Java中听说过Reflection API,但我不确定这是否符合此目的。
答案 0 :(得分:1)
Reflection API允许操作/访问不可访问的数据 - 或者在编译时未知的类上的某些数据。
在这里,真的不需要。您所需要的只是将put()
元素放入地图中,它将从您刚刚插入的键中“删除”旧值(如果已经存在)并将其(键)与新添加的值相关联。
所以,基本上 - 你需要做的就是myMap.put(key,newValue)
,而Map
的实现(假设它是正确的)当然会处理其余的事情。
如果要在程序运行之间存储数据,则必须将其(映射)保存在磁盘上。为此,您可以使用serialization,或者在某些情况下可以使用Properties
。
确保在程序启动后从磁盘加载地图,否则您将看不到存储的值。
答案 1 :(得分:0)
简单地说,mymap.put(key,value);
。它将更新匹配键的值。如果没有,它将插入一个新条目,例如
mymap.put("Hello",4);
如果您不想为新密钥插入新值,例如World
,你可以这样检查一下:
if(mymap.containsKey(key)){
mymap.put(key,value);
}else{
//no existing key found
}
答案 2 :(得分:0)
Preferences API可以轻松地在磁盘上存储少量数据。它通常用于存储配置数据。它类似于Windows注册表。
以下是介绍:http://docs.oracle.com/javase/1.4.2/docs/guide/lang/preferences.html