SortedSet для целых чисел с GNU trove - PullRequest
4 голосов
/ 22 ноября 2011

Я переносу некоторый код в GNU trove по соображениям производительности.

Однако у меня есть несколько TreeSets, где мне нужно довольно быстрое обновление и поиск вместе с отсортированной итерацией - основной вариант использования TreeSet. Конечно, я перейду к использованию и проверю, могу ли я жить с HashSet так же хорошо.

Что является подходящей заменой GNU Trove для SortedSet?

Спасибо.

1 Ответ

2 голосов
/ 27 декабря 2011

Обновление: я нашел соответствующий запрос в Trove на Sourceforge: http://sourceforge.net/tracker/index.php?func=detail&aid=1631704&group_id=39235&atid=424685

Похоже, что SortedSet пока не существует, а преимущества Trove здесь не так велики: он сэкономит память для примитивных типов (и позволит избежать упаковки), но алгоритмическая организация данных, скорее всего, будет таким же, и для него по-прежнему потребуются входные объекты.

Обновление № 2:

Для многих случаев использования - в зависимости от ваших шаблонов доступа для записи - вы должны быть в состоянии получить приличную производительность, просто используя TIntArrayList и используя метод binarySearch для поиска (который предполагает сортировку массива! )

Вставка в отсортированный массив - это O (n), так что это не вариант, когда вы выполняете массу изменений в массиве и выполняете запрос после каждого. Но если ваши изменения являются массовыми дополнениями, просто вызов sort после каждого обновления должен дать вам удивительно хорошую производительность!

...