2012-08-01 43 views
1

我想保持一個狀態表,其中美國一直在使用一個枚舉更新HashMap中的條目,而無需使用apache.commons功能

private enum states { 
    contension_initiated, contension_failure, contension_success, reservation_success, reservation_completed, reservation_failure 
} 

和狀態表中定義使用

HashMap<Integer, states> stateTable = new HashMap<Integer, states>(); 
保持

根據條件,stateTable中的值將會發生變化/變化 如何在不使用apache.commons庫的情況下修改hashMap中的相同條目?

我一直這樣做,直到如今:

if(condition1) 
     stateTable.put(1,state.contension_initiated) 
if(condition2) 
     stateTable.remove(1) 
     stateTable.put(1,contension_success) 
+2

爲什麼需要刪除該項目? – MadProgrammer 2012-08-01 03:05:09

+0

@MadProgrammer如何維護狀態/將HashMap中相同條目的狀態從contension_initiated更改爲與相同密鑰關聯的contension_success? – bhavs 2012-08-01 03:18:01

回答

3
if(condition1) 
     stateTable.put(1,state.contension_initiated) 
if(condition2) 
     stateTable.put(1,contension_success) 

的HashMap將保持只有一個唯一的密鑰。因此,如果您嘗試「放入」已存在的密鑰,它將替換與該密鑰相關聯的值(而不是添加新密鑰)

+0

沒有意識到這一點我認爲它會拋出一個異常,我不想嘗試 – bhavs 2012-08-01 03:27:12

+0

有時,這些事情根本不明顯。很高興提供幫助:D – MadProgrammer 2012-08-01 03:29:16

相關問題