How to create and populate Scala Vectors (syntax, examples)

This page contains a collection of examples that show how to create and populate instances of the Scala Vector class.

Create a new Vector with initial elements

To create a new Vector with initial elements:

val nums = Vector(1, 2, 3)

val people = Vector(
    Person("Emily"),
    Person("Hannah"),
    Person("Mercedes")
)

When you need to be clear about what’s in the vector:

val x = Vector(1, 1.0, 1F)                   # Vector[Double] = Vector(1.0, 1.0, 1.0)
val x: Vector[Number] = Vector(1, 1.0, 1F)   # Vector[Number] = Vector(1, 1.0, 1.0)

trait Animal
case class Dog(name: String) extends Animal
case class Cat(name: String) extends Animal
val animalHouse: Vector[Animal] = Vector(    # Vector[Animal] = Vector(Dog(Rover), Cat(Felix))
    Dog("Rover"),
    Cat("Felix")
)

If you ever need to create an empty vector:

val nums = Vector[Int]()

Remember the construction syntax is just syntactic sugar for apply:

val nums = Vector(1, 2, 3)                   # Vector(1, 2, 3)
val nums = Vector.apply(1, 2, 3)             # Vector(1, 2, 3)

Create a new Vector by populating it

You can also create a new Vector that’s populated with initial elements using a Range:

# to, until
(1 to 5).toVector                   # Vector(1, 2, 3, 4, 5)
(1 until 5).toVector                # Vector(1, 2, 3, 4)

(1 to 10 by 2).toVector             # Vector(1, 3, 5, 7, 9)
(1 until 10 by 2).toVector          # Vector(1, 3, 5, 7, 9)
(1 to 10).by(2).toVector            # Vector(1, 3, 5, 7, 9)

('d' to 'h').toVector               # Vector(d, e, f, g, h)
('d' until 'h').toVector            # Vector(d, e, f, g)

('a' to 'f').by(2).toVector         # Vector(a, c, e)

# range method
Vector.range(1, 3)                  # Vector(1, 2)
Vector.range(1, 6, 2)               # Vector(1, 3, 5)

You can also use the fill and tabulate methods:

Vector.fill(3)("foo")               # Vector(foo, foo, foo)
Vector.tabulate(3)(n => n * n)      # Vector(0, 1, 4)
Vector.tabulate(4)(n => n * n)      # Vector(0, 1, 4, 9)

More information

I created this tutorial to show how to create and populate a Scala Vector, but for many more examples of how to work with Vector, see my Scala Vector class syntax and method examples tutorial.