Diferencia entre Seq y List en Scala
La Seq de Scala será la Lista de Java y la Lista de Scala será la LinkedList de Java.
Tenga en cuenta que Seq es un rasgo, que es equivalente a la interfaz de Java, pero equivalente al próximo método defensor. List de Scala es una clase abstracta extendida por Nil y ::, que es la implementación concreta de List.
Entonces, List en Java es una interfaz y List en Scala es una implementación.
Además de eso, la Lista de Scala es inmutable, lo que no es el caso con LinkedList. De hecho, Java no tiene equivalente a colecciones inmutables (lo de solo lectura solo garantiza que el nuevo objeto no se puede cambiar, pero aún puedes cambiar el antiguo, por lo tanto, uno de "solo lectura").
La lista de Scala está altamente optimizada por el compilador y la biblioteca, y es el tipo de datos básico en la programación funcional. Sin embargo, tiene limitaciones, no es suficiente para la programación paralela. Hoy en día, Vector es una mejor opción que List, pero los hábitos son difíciles de romper.
Seq es una buena secuencia generalizada, por lo que si programa en una interfaz, debe usarla. Tenga en cuenta que en realidad hay tres: collection.Seq, collection.mutable.Seq y collection.immutable.Seq; es este último el que se importa al alcance de forma "predeterminada".
También existen GenSeq y ParSeq. Los últimos métodos se ejecutan en paralelo siempre que sea posible; el primero es el padre de Seq y ParSeq, lo cual es una generalización adecuada cuando el paralelismo del código no importa. Todos ellos son relativamente nuevos, por lo que la gente no los usa.