# HG changeset patch # User mduigou # Date 1377024706 25200 # Node ID 1f4ff0af7567370b4318644b8c54ccae1fa7f0d6 # Parent 2fd841fccb2e5053758e831bc2dd6d6df40da86c 8023306: Add replace() implementations to TreeMap Reviewed-by: psandoz diff --git a/src/share/classes/java/util/TreeMap.java b/src/share/classes/java/util/TreeMap.java --- a/src/share/classes/java/util/TreeMap.java +++ b/src/share/classes/java/util/TreeMap.java @@ -973,6 +973,27 @@ } @Override + public boolean replace(K key, V oldValue, V newValue) { + Entry p = getEntry(key); + if (p!=null && Objects.equals(oldValue, p.value)) { + p.value = newValue; + return true; + } + return false; + } + + @Override + public V replace(K key, V value) { + Entry p = getEntry(key); + if (p!=null) { + V oldValue = p.value; + p.value = value; + return oldValue; + } + return null; + } + + @Override public void forEach(BiConsumer action) { Objects.requireNonNull(action); int expectedModCount = modCount;