примитивный multimap в java с хорошими (вставка, итерация) характеристиками производительности
Я делаю некоторую тяжелую обработку (построение обратных индексов), используя ints/ longs в Java.
Я определил, что (un)бокс стандартного java.сбор карт занимает большую часть общего времени обработки. (по сравнению с аналогичной реализацией с использованием массивов, которые я не могу использовать из-за ограничений памяти).
Я ищу быструю стороннюю реализацию (или любую реализацию вообще, если на то пошло), которая могла бы поддерживать следующую структуру:
Карта с характеристики:
- ключи на карте разрежены (+/- 10.000.000 ключей в диапазоне [0,2^64] - значения всегда добавляются в конец списка - быстрая вставка (амортизированный O (1), если это возможно) - быстрая итерация в ключевом порядке.
Я посмотрел на trove, fastutil и т. д. но не удалось найти реализацию multimap с использованием примитивов (только обычные карты)
Любая помощь приветствуется.
Спасибо, Герт-Ян
2 ответа:
Рассматривали ли вы возможность реализации мульти-части самостоятельно, используя примитивную long - > Object-map и примитивный int-set в качестве значения?
Как насчет библиотеки Google collections? http://code.google.com/p/google-collections/