Вы могли бы использовать a MultiSet из Google Collections / Guava или a Bag из Apache Commons.
Если у вас есть коллекция вместо массива, вы можете использовать addAll() для добавления всего содержимого в приведенную выше структуру данных, а затем применить count() метод к каждому значению. A SortedMultiSet или SortedBag предоставит вам элементы в определенном порядке.
В Google Коллекциях на самом деле есть очень удобные способы перехода от массивов к a SortedMultiset.