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