複数のスレッドからaddIdメソッドを呼び出すときに競合が発生する可能性がありますか?以下のコードで競合状態が発生する可能性があります
private static Map<String , Long> table;
static {
table = new ConcurrentHashMap<String , Long>();
}
public static void addId(String key, Long value){
if(table.containsKey(key)){
table.remove(key);
}
table.put(key, value);
}
1行に 'table'を宣言することができます。 –
1行での宣言は、静的なクラスコード内での宣言と同じですか? –
はい、ただし4行ではなく1行が必要です。私はまた、 'テーブル' finalを作るだろう –