Array
Array.new, [] Returns:
Array · Updated March 13, 2026 · Kernel Methods arrays collections ordered indexed
The Array class is Ruby’s primary ordered collection. Arrays can hold objects of any type and grow dynamically. They are one of the most frequently used data structures.
Creating Arrays
# Literal syntax
arr = [1, 2, 3]
arr = [] # Empty array
# With Array.new
arr = Array.new(3) # => [nil, nil, nil]
arr = Array.new(3, 0) # => [0, 0, 0]
arr = Array.new(3) { |i| i } # => [0, 1, 2]
# From other objects
Array("hello") # => ["hello"]
Array(1..5) # => [1, 2, 3, 4, 5]
Accessing Elements
arr = [:a, :b, :c, :d]
arr[0] # => :a (first)
arr[-1] # => :d (last)
arr[1, 2] # => [:b, :c] (slice)
arr.first # => :a
arr.last # => :d
Modification
arr = [1, 2, 3]
arr << 4 # => [1, 2, 3, 4] (push)
arr.push(5) # => [1, 2, 3, 4, 5]
arr.pop # => 5, arr is [1, 2, 3, 4]
arr.shift # => 1, arr is [2, 3, 4]
arr.unshift(0) # => [0, 1, 2, 3, 4]
Iteration
[1, 2, 3].each { |i| puts i }
[1, 2, 3].map { |i| i * 2 } # => [2, 4, 6]
[1, 2, 3].select { |i| i > 1 } # => [2, 3]
[1, 2, 3].reduce(:+) # => 6
Useful Methods
arr = [1, 2, 3, 2, 1]
arr.length # => 5
arr.size # => 5
arr.empty? # => false
arr.include?(2) # => true
arr.index(2) # => 1
arr.count(2) # => 2
arr.uniq # => [1, 2, 3]
arr.sort # => [1, 1, 2, 2, 3]
arr.reverse # => [1, 2, 3, 2, 1]
Practical Examples
Queue
queue = []
queue << item
item = queue.shift
Stack
stack = []
stack.push(item)
item = stack.pop
Set-like Operations
a = [1, 2, 3]
b = [2, 3, 4]
a | b # => [1, 2, 3, 4] (union)
a & b # => [2, 3] (intersection)
a - b # => [1] (difference)
Matrix Representation
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
matrix[1][1] # => 5 (center)
Comprehension-style
# Like list comprehension in Python
arr = (1..5).to_a.select { |x| x.even? } # => [2, 4]
squares = (1..5).map { |x| x*x } # => [1, 4, 9, 16, 25]
Arrays are versatile, efficient for indexed access, and form the foundation of many Ruby programs.