примитивный multimap в java с хорошими (вставка, итерация) характеристиками производительности


Я делаю некоторую тяжелую обработку (построение обратных индексов), используя ints/ longs в Java.

Я определил, что (un)бокс стандартного java.сбор карт занимает большую часть общего времени обработки. (по сравнению с аналогичной реализацией с использованием массивов, которые я не могу использовать из-за ограничений памяти).

Я ищу быструю стороннюю реализацию (или любую реализацию вообще, если на то пошло), которая могла бы поддерживать следующую структуру:

Карта с характеристики:

- ключи на карте разрежены (+/- 10.000.000 ключей в диапазоне [0,2^64] - значения всегда добавляются в конец списка - быстрая вставка (амортизированный O (1), если это возможно) - быстрая итерация в ключевом порядке.

Я посмотрел на trove, fastutil и т. д. но не удалось найти реализацию multimap с использованием примитивов (только обычные карты)

Любая помощь приветствуется.

Спасибо, Герт-Ян

2 4

2 ответа:

Рассматривали ли вы возможность реализации мульти-части самостоятельно, используя примитивную long - > Object-map и примитивный int-set в качестве значения?

Как насчет библиотеки Google collections? http://code.google.com/p/google-collections/