Bag (Multiset) Collection

ІП-24 Олександр Ротань rotan.olexandr at gmail.com
Sat Apr 20 20:25:15 UTC 2024


In this letter I would like to express some of my thoughts regarding the
potential Multiset interface.

I, personally, have encountered a few situations where such an interface
could come in handy, mostly when I needed an ordered collection that
permits duplicates. That time I used guava`s TreeMultiset, but I think Java
itself should have such a collection in its std library. While it is not a
very common problem, there are still a bunch of use cases where such things
could come in handy.

I am willing to take on development of such thing, but there are a few
concerns about Multiset:

1. Is there any other use for this besides ordered collection that permits
duplicates? I can't remember anything else from the top of my head.

2. Guava's TreeMultiset class hierarchy pretty much imitates TreeSet class
hierarchy, while not being directly connected. I think introducing any
other ordered collection will require some refactoring of existing
collection interfaces (for example extract SortedCollection from SortedSet,
Navigable Collection from NavigableSet etc.). From the perspective of clean
code, this would be the right decision, but I feel like this will be a very
complex task to accomplish.

3. Maybe there should be few versions of Tree collection (for example, for
regular tasks red-black tree and B-Tree for large amounts of data). I have
some expirience implementing both, but is it really needed in standard
library?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/core-libs-dev/attachments/20240420/71033a5d/attachment.htm>


More information about the core-libs-dev mailing list