# 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)``````

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. These same techniques also work with other Scala sequential collections classes, including `Seq`, `List`, `Array`, `ArrayBuffer`, and more.