OpenJDK / jdk / jdk
changeset 54429:82f41fb55b63
8221921: Implement size() / isEmpty() in immutable collections
Reviewed-by: smarks
author | redestad |
---|---|
date | Thu, 04 Apr 2019 23:21:52 +0200 |
parents | 6aedb80a6fd4 |
children | fb25cd198a10 |
files | src/java.base/share/classes/java/util/ImmutableCollections.java |
diffstat | 1 files changed, 31 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/java.base/share/classes/java/util/ImmutableCollections.java Thu Apr 04 23:21:24 2019 +0200 +++ b/src/java.base/share/classes/java/util/ImmutableCollections.java Thu Apr 04 23:21:52 2019 +0200 @@ -404,6 +404,11 @@ } @Override + public boolean isEmpty() { + return false; + } + + @Override public E get(int index) { if (index == 0) { return e0; @@ -480,7 +485,7 @@ @Override public boolean isEmpty() { - return size() == 0; + return elements.length == 0; } @Override @@ -579,6 +584,11 @@ } @Override + public boolean isEmpty() { + return false; + } + + @Override public boolean contains(Object o) { return o.equals(e0) || o.equals(e1); // implicit nullcheck of o } @@ -706,6 +716,11 @@ } @Override + public boolean isEmpty() { + return size == 0; + } + + @Override public boolean contains(Object o) { Objects.requireNonNull(o); return size > 0 && probe(o) >= 0; @@ -876,6 +891,16 @@ return o.equals(v0); // implicit nullcheck of o } + @Override + public int size() { + return 1; + } + + @Override + public boolean isEmpty() { + return false; + } + private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { throw new InvalidObjectException("not serial proxy"); } @@ -993,6 +1018,11 @@ return size; } + @Override + public boolean isEmpty() { + return size == 0; + } + class MapNIterator implements Iterator<Map.Entry<K,V>> { private int remaining;