RFR 8005704: Update ConcurrentHashMap to v8 (original) (raw)

Doug Lea dl at cs.oswego.edu
Wed May 29 13🔞58 UTC 2013


On 05/28/13 16:03, Martin Buchholz wrote:

A long-returning size method seems like a framework-level decision. We could add a default method to Collection.java and Map.java

default long mappingCount() { return size(); }

The lambda EG discussed this, and decided not to do it now, and to put off support for 64bit collections until JDK9. But CHM needs this now, so we picked a name that is usable but not likely to clash with some better future name, like length().

-Doug

I'm not sure mappingCount is the best name, but all names will be confusing. Using the name "length()" at least has an onomatopoeic mnemonic advantage - it suggests that it might return a long. /** * Returns the number of mappings. This method should be used * instead of {@link #size} because a ConcurrentHashMap may * contain more mappings than can be represented as an int. The * value returned is an estimate; the actual count may differ if * there are concurrent insertions or removals. * * @return the number of mappings */ public long mappingCount() { long n = sumCount(); return (n < 0L) ? 0L : n; // ignore transient negative values }



More information about the core-libs-dev mailing list