使用jButton将数据保存到哈希图中



我是java新手,需要帮助通过jButton将数据保存到哈希图中。我有一个在netbeans中创建的GUI,它有三个字段召集人ID、审查员和学生ID。用户只需在每个字段中输入数据,然后单击Submit,它就会将数据存储到哈希图中。我遇到的问题是,我希望每个记录都是唯一的,并且有一个以G开头的密钥,每次提交记录时都会递增。E.gG1|1|KK|thr、tut、tetG2|2|KR|abc、def、ghi

private void savemode () {
     HashMap<String, Collection<String>> a = new HashMap<String, Collection<String>>();
     int x = Integer.parseInt(counter.getText());
     counter.getText();
String key = "G" + x;
String[] lines = textbox1.getText().split("n"); 
a.put(key, new ArrayList<String>());
a.get(key).add(textbox2.getText());
a.get(key).add(textbox3.getText());
a.get(key).add(Arrays.toString(lines)); 
textbox1.setText("");
textbox2.setText("");
textbox3.setText("");
x++;
counter.setText(Integer.toString(x));
}

每次保存数据时,都会重新创建HashMap,因为只在按下按钮时保存当前记录,所以永远不会保留以前的值。一个简单的解决方案是使您的HashMap全局化,然后在插入新的键/值对或修改现有的键/价值对之前,检查用户希望保存/修改的键是否存在。

要使您的变量全局化,请执行类似于以下操作:

public class MyClass
{
   private HashMap<Key, Value> myHashMap = new HashMap<>();
   public void myMethod()
   {
     myHashMap.put(myKeyVariable, myValueVariable);
   }
}

每次存储记录时都要重新创建HashMap,因此旧的存储记录将被擦除。将HashMap声明移出方法,并将其创建为包含saveMode方法的类中的私有变量。

private Map<String, Collection<String>> a = new HashMap<String, Collection<String>>();

然后,当调用该方法时,只需将新记录添加到现有映射中,而不是每次都重新创建它。

最新更新