非常简练:
1 private static void put(MetricKey key, float value) { 2 MetricValue current; 3 do { 4 current = map.get(key); 5 } while (current == null ? map.putIfAbsent(key, new MetricValue(value)) != null 6 : !map.replace(key, current, new MetricValue(current, value))); 7 }