我正在使用散列表來填充jtable。用戶選擇一行並單擊一個編輯按鈕。我從哈希映射中獲取值並將其置於textarea中。用戶可以進行更改,然後單擊另一個按鈕。我有新的價值和關鍵,但我不確定如何將更改後的值寫回散列表中的右鍵。將新值賦給散列表中的現有密鑰
這是我寫的數據到textarea的
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是關鍵值
我是否需要迭代通過hashmap尋找匹配?不知道它的問題,但它是一個LinkedHashMap的,而不是一個HashMap
那麼你有什麼不工作? 'put(a,b); put(a,c);'應該用c覆蓋b。 – Thomas 2012-07-10 20:02:07