Существует ли отсортированная коллекция Java, которая обрабатывает дубликаты? - PullRequest
6 голосов
/ 17 апреля 2010

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

Ответы [ 3 ]

7 голосов
/ 17 апреля 2010

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

4 голосов
/ 17 апреля 2010

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

1 голос
/ 20 июня 2014

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

...