By "ordered collection" you mean "unordered collection"?
How common is it to actually use a multiset in general? Of course there are use cases, and there are areas in which it is used a lot, but I don't believe it is common enough to be part of the std with the one exception of concurrent bag. On Sat, 20 Apr 2024, 23:25 ІП-24 Олександр Ротань, <rotan.olexa...@gmail.com> wrote: > 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? >