Предпочитаете коллекцию Scala для постепенного удаления случайных предметов? - PullRequest
4 голосов
/ 14 октября 2011

У меня есть алгоритм, который принимает много итераций, каждая из которых оценивает элементы в коллекции и удаляет элемент с наивысшим баллом.

Я мог бы заполнить Vector исходной совокупностью, постоянно заменяя еекак var или выберите изменяемую коллекцию как val.Какая из изменчивых коллекций лучше всего отвечает всем требованиям?

Ответы [ 2 ]

5 голосов
/ 14 октября 2011

Можно рассмотреть DoubleLinkedList, который имеет удобный remove() метод для удаления текущей ячейки списка.

4 голосов
/ 14 октября 2011

Я думаю, что Map (или его близкий родственник, Set) могли бы преуспеть. У него нет индексированного доступа, но это не то, что вам нужно. Если вы выберете TreeMap, вы даже получите заказанную коллекцию.

Однако могу ли я указать, что ваш алгоритм, похоже, требует Heap ? Куча оптимизирована для многократного поиска / удаления максимального элемента (или минимума, если вы инвертируете сравнение, строящее кучу). В Scala нет готовой кучи, но куча легко реализуется с помощью массива.

...