ハッシュマップを使用してjtableにデータを入力しています。ユーザーが行を選択し、編集ボタンをクリックします。ハッシュマップから値を取得し、テキストエリアに配置しています。ユーザーは変更を加えてから、別のボタンをクリックできます。私は新しい値とキーを持っていますが、変更された値をハッシュマップの正しいキーに書き戻す方法がわかりません。
これは、テキストエリアにデータを書き出す場所です
private void outputSelection() {
StringBuffer csb = new StringBuffer();
String s = "";
int[] row = selectTable.getSelectedRows();
for(int i = row.length-1; i >= 0; i--){
String check = (String) EdiMapTableModel.getMapInstance().getValueAt(i, EdiMapTableModel.getMapInstance().COMMENT_COL);
if (!isNullOrEmpty(check)) {
if (csb.length() > 0) {
csb.append("\n");
}
csb.append(check);
}
}
s = csb.toString();
csb.setLength(0);
output.append(s);
}
これは私が値を元に戻そうとしているところです
private void inputSelection() {
String s = output.getText();
int[] row = selectTable.getSelectedRows();
for(int i = row.length-1; i >= 0; i--){
TCComponentItemRevision check = (TCComponentItemRevision) EdiMapTableModel.getMapInstance().getValueAt(i, EdiMapTableModel.getMapInstance().ITEMID_COL);
EdiMapTableModel.getMapInstance().commentBackMap(check, s);
repaint();
}
}
これは私が地図に戻そうとしているところです
public void commentBackMap(int row, TCComponentItemRevision id, String comment) {
if(model.containsKey(id)) {
model.put(id, comment);
}
fireTableDataChanged();
}// end commentBackMap()
containsKey が真上にないことはわかっています。id はキー値です
ハッシュマップを反復処理して一致を探す必要がありますか? それが問題かどうかはわかりませんが、ハッシュマップではなくリンクされたハッシュマップです