Есть ли сортированная коллекция Java, которая обрабатывает дубликаты?

StackOverflow https://stackoverflow.com/questions/2658356

Вопрос

Мне нужна коллекция, которая ведет себя что-то вроде MultiMAP C ++, но мне также нужно иметь возможность получить элементы диапазоном клавиш.

Это было полезно?

Решение

В Java нет встроенной коллекции MultiMap. Чтобы решить это, вы можете отобразить на карту каждому ключу список значений: Map<String, List<String>>, Например. В противном случае есть сторонние библиотеки с реализованными мультимаптами - здесь один из них.

Другие советы

Вы можете посмотреть в Коллекции Google. Отказ Он имеет несколько реализаций для MultiMap.

Существует простой взлом вокруг создания MultiMap Villable Collections в Java ... Используйте DataSet TREEWAP и для ключей введите клавишу * 10 ^ 4 + счетчик. Таким образом, вы храните дубликаты ключевых значений на карте (добавив счетчик, на самом деле не дублируется, поэтому вы можете хранить в TREEWAP, но вы знаете, не используете последние четыре цифры целочисленных значений целых), однако ваш набор данных Быть отсортированным с использованием ваших оригинальных ключевых значений. Обратите внимание, что в зависимости от того, насколько большой набор данных вы можете настроить 10 ^ n, чтобы убедиться, что он больше, чем количество записей в ваших данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top