Your Bag suggestion has been asked so frequently that there is an FAQ entry in the official Java Docs.
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/doc-files/coll-designfaq.html#a3 On Sat, Apr 20, 2024 at 4:25 PM ІП-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? >