1

列挙型を使用して状態が定義されている状態テーブルを維持したい

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) 
4

1 に答える 1

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

HashMap は、単一の一意のキーのみを保持します。したがって、すでに存在するキーを「配置」しようとすると、キーに関連付けられた値が置き換えられます (新しいキーを追加するのではなく)。

于 2012-08-01T03:21:44.460 に答える