根据用户反馈修改代码

时间:2012-10-16 20:19:06

标签: java

我将一些数据存储在哈希映射中。现在,我想根据用户输入修改与键关联的值,并以永久方式存储它们。

为了让自己更清楚,我有一个像这样的散列图:

public static HashMap<String,Integer> mymap= new HashMap<String,Integer>();
mymap.put("Hi",2);
mymap.put("Hello",3);

我将从某个用户的用户那里获得反馈,如果他想要,那么我会将4存储为Hello。我希望保存这些更改以供将来参考。

我在Java中听说过Reflection API,但我不确定这是否符合此目的。

3 个答案:

答案 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