Я писал класс, который содержал несколько функционально-esque методов.Сначала я написал их, используя List в качестве параметров и возвращаемых типов.Тогда я подумал: «Эй, ты также можешь использовать более общий тип!»поэтому я заменил списки на Seq, надеясь, что когда-нибудь смогу ускорить свои вещи, передав им что-то, кроме списков.
Итак, для какой структуры данных общего назначения стекового типа я напишу свои методы и алгоритмы?Есть ли какая-то общая схема, которой я могу придерживаться?Все это потому, что в будущем методы могут нуждаться в оптимизации, если они сформируют узкое место.
Обновление
Я постараюсь быть более точным: учитываязнать, какие операции вы используете, например, реверсирование, .tail, прямой доступ к элементу или для понимания.Могу ли я выбрать тип, который будет обеспечивать эффективность этих операций?
Обновление 2
Я хорошо знаю производительность конкретных структур данных для различных задач.Что я не знаю, так это то, какая структура данных может выглядеть как подкласс некоторого супертипа.
Например, я должен использовать TraversableOnce или IndexedSeq вместо List или Array?Это мне что-нибудь купит?
Дополнительный вопрос
Что такое ваша подпись по умолчанию в виде списка в структуре данных?Вы пишете
def a(b: List[A]): List[A]
или
def a(b: TraversableOnce[A]): TraversableOnce[A]
Можете ли вы объяснить, почему?