In this post, we will learn about arrays and the operations we can perform on them.

Array is the most common data structures we use in our programs. They are used to store data that can be accessed using index. In Ruby, an array may contain different type of data unlike in Java and C# where array stores similar type of data.

The starting value of array index in Ruby is 0 whereas the ending value is size of array – 1.

To declare an array, we use:

Syntax

`array_name = Array.new([ .. ])`

or

`array_name = []`

A blank array with 5 elements can be declared as:

`array_name = Array.new(5)`

All of the 5 values would be null in this case. If you want to initialize all values with some default value, use:

`array_name = Array.new( 5, 0 )`

All the array values will be 0 now.

Let us see some examples:

Calculating sum of even numbers

```numbers = [1,2,3,4,5,6]

sum = 0
numbers.each do |x|
if x%2 ==0 then
sum += x
end
end

puts sum```

Same program using for loop

```numbers = [1,2,3,4,5,6]

sum = 0
for i in 0..numbers.size-1
if numbers[i]%2 == 0 then
sum += numbers[i]
end
end

puts sum```

We can add items to an existing array using any of the following methods:

```numbers = [1,2,3,4]

numbers << 5            # adds item to the end of array

numbers.push(5)         # adds item to the end of array

numbers.unshift(5)      # adds item to the start of array```

Removing elements from array

To remove an item from array, we can use:

```numbers = [10,20,30,40]

numbers.pop               # removes 40

numbers.shift             # removes 10

numbers.delete_at(2)      # removes the value 30```

Combining array

We can easily combine two arrays by using the + operator. Here is an example:

```numbers1 = [1,2,3]
numbers2 = [4,5,6]
numbers = numbers1 + numbers2
puts numbers```

We can also write:

`numbers = numbers1 + numbers2`

as

`numbers = numbers1.concat(numbers2)`

We can also subtract one array from another.

```numbers1 = [1,2,3,4]
numbers2 = [2,3,8]

numbers = numbers1 - numbers2```

Output:

`[1,4]`

Reversing and rotating array

We can easily rotate or reverse an array. Here are some examples:

```numbers = [1,2,3,4,5]

numbers.reverse!           #  [5,4,3,2,1]        ! means modify original array instead of returning

number.rotate!             #  [2,3,4,5,1]

number.rotate!(-1)         #  [5,1,2,3,4]```

Removing duplicate values

We can remove duplicate values from array by calling the method uniq. Here is an example:

```numbers = [1,2,3,1,5,2]

numbers.uniq!```