diff --git a/src/java.base/share/classes/java/util/HashSet.java b/src/java.base/share/classes/java/util/HashSet.java index 02dc0b4ee9d..43401224059 100644 --- a/src/java.base/share/classes/java/util/HashSet.java +++ b/src/java.base/share/classes/java/util/HashSet.java @@ -382,12 +382,12 @@ public Spliterator spliterator() { } @Override - public Object[] toArray() { + public @Nullable Object[] toArray() { return map.keysToArray(new Object[map.size()]); } @Override - public T[] toArray(T[] a) { + public T[] toArray(T[] a) { return map.keysToArray(map.prepareArray(a)); } diff --git a/src/java.base/share/classes/java/util/IdentityHashMap.java b/src/java.base/share/classes/java/util/IdentityHashMap.java index f17ce1e0298..80a90dc8976 100644 --- a/src/java.base/share/classes/java/util/IdentityHashMap.java +++ b/src/java.base/share/classes/java/util/IdentityHashMap.java @@ -1444,7 +1444,7 @@ public void replaceAll(BiFunction function) { * {@code false}. */ @Override - public boolean remove(Object key, Object value) { + public boolean remove(@Nullable Object key, @Nullable Object value) { return removeMapping(key, value); } diff --git a/src/java.base/share/classes/java/util/TreeMap.java b/src/java.base/share/classes/java/util/TreeMap.java index f28c046aafe..9f65dec28a3 100644 --- a/src/java.base/share/classes/java/util/TreeMap.java +++ b/src/java.base/share/classes/java/util/TreeMap.java @@ -25,6 +25,7 @@ package java.util; +import org.jspecify.annotations.NonNull; import org.jspecify.annotations.NullMarked; import org.jspecify.annotations.Nullable; @@ -581,7 +582,7 @@ final Entry getLowerEntry(K key) { } @Override - public V putIfAbsent(K key, V value) { + public @Nullable V putIfAbsent(K key, V value) { return put(key, value, false); } @@ -666,7 +667,7 @@ else if (cmp > 0) * remapping function modified this map */ @Override - public V computeIfPresent(K key, BiFunction remappingFunction) { + public @Nullable V computeIfPresent(K key, BiFunction remappingFunction) { Objects.requireNonNull(remappingFunction); Entry oldEntry = getEntry(key); if (oldEntry != null && oldEntry.value != null) { @@ -687,7 +688,7 @@ public V computeIfPresent(K key, BiFunction r * remapping function modified this map */ @Override - public V compute(K key, BiFunction remappingFunction) { + public @Nullable V compute(K key, BiFunction remappingFunction) { Objects.requireNonNull(remappingFunction); V newValue; Entry t = root; @@ -749,7 +750,7 @@ else if (cmp > 0) * remapping function modified this map */ @Override - public V merge(K key, V value, BiFunction remappingFunction) { + public @Nullable V merge(K key, @NonNull V value, BiFunction remappingFunction) { Objects.requireNonNull(remappingFunction); Objects.requireNonNull(value); Entry t = root;