Question regarding interface java.util.Sized
Kasper Nielsen
kasperni at gmail.com
Fri Oct 26 06:45:22 PDT 2012
On Fri, Oct 26, 2012 at 1:54 PM, Gernot Neppert <mcnepp02 at googlemail.com> wrote:
> Hello all,
>
> while browsing the latest lambda-related sourcecode, I came across the
> new mixin-style interface "java.util.Sized".
>
> The JavaDoc says:
> "Implementing this interface allows an object to indicate that its
> elements may be efficiently counted."
>
> OK, so what do we do with this interface? In what contexts do we want
> to test for "instanceof Sized" and then query its size()?
> As far as I can see, "Sized" is implemented by:
>
> java.util.Collection
> java.util.Map
> java.util.streams.ops.Node
Yes, I still don't understand why Collection (and Map) implements
Sized. It should be on the actual implementation of the interface.
For example, the size operation of ConcurrentLinkedQueue is O(n) but
it still implements Sized (via Queue extends Collection).
I find it pretty conflicting with the statement from the Sized
interface "Counting is always less than O(n)."
- Kasper
More information about the lambda-dev
mailing list