Есть хорошая блок-схема (взята из здесь) для выбора конкретного контейнера в С++:
Есть ли что-то подобное для коллекций Scala? Я все еще несколько перегружен вариантами.
Ответ 1
Мне не известны такие блок-схемы для Scala, но я думаю, что это было бы полезно.
Я сделал один для вас - увеличенное изображение здесь.
Обратите внимание, что есть некоторая дополнительная сложность, поскольку Scala имеет больше наборов, и есть как пакет mutable, так и immutable. По возможности я добавил обе альтернативы прямоугольнику.
Я старался как можно больше следовать диаграмме потока С++ STL, но я думал, что нижняя левая часть слишком усложняет ситуацию, поэтому я немного изменил поток.
EDIT: исправлены некоторые опечатки.
РЕДАКТИРОВАТЬ: Как предложил Тревис, обратите внимание, что в большинстве ситуаций вам нужно всего лишь выбрать между Map, Set, List, ArrayBuffer или Vector.
Если вам нужен поиск по ключевым словам, используйте Map
если вам нужно проверить наличие элементов, используйте Set
если вам нужно хранить элементы и перемещать их, используйте List или ArrayBuffer
если вам не нужна постоянная коллекция, но произвольный доступ действительно важен, используйте ArrayBuffer
если вам нужен относительно быстрый случайный доступ и постоянные последовательности, используйте Vector
Если это не помогает, и у вас есть более экзотический случай использования, используйте эту диаграмму.