DEV Community

Jayaprasanna Roddam
Jayaprasanna Roddam

Posted on

1 1

Arrays

1. Introduction to Arrays

Definition:

An array is a collection of elements, all of the same type, stored in contiguous memory locations. It provides a way to store multiple items of the same data type in a single variable, allowing for efficient indexing and access.

Characteristics of Arrays:

  • Fixed Size: Once an array is created, its size cannot be changed (static arrays).
  • Homogeneous Elements: All elements in an array are of the same type.
  • Random Access: Elements can be accessed directly using their index.
  • Memory Layout: Arrays are stored in contiguous memory, allowing efficient access.

2. Accessing Array Elements

Syntax:

In most programming languages, array elements are accessed using an index that starts from 0. For example, in Go:

arr := []int{10, 20, 30, 40, 50}
fmt.Println(arr[0]) // Output: 10
Enter fullscreen mode Exit fullscreen mode

Example Problem:

Given an array of integers, return the first and last elements.

func firstAndLast(arr []int) (int, int) {
    return arr[0], arr[len(arr)-1]
}

// Example usage
arr := []int{1, 2, 3, 4, 5}
first, last := firstAndLast(arr)
// Output: first = 1, last = 5
Enter fullscreen mode Exit fullscreen mode

3. Insertion and Deletion in Arrays

Insertion:

  • At the End: Inserting an element at the end of the array is straightforward (if there's space).
  • At a Specific Index: Requires shifting elements to make space.

Deletion:

  • From the End: Simply remove the last element.
  • From a Specific Index: Requires shifting elements to fill the gap.

Example Problem:

Implement a function to insert an element at a specific index in an array.

func insertAtIndex(arr []int, index int, value int) []int {
    arr = append(arr[:index], append([]int{value}, arr[index:]...)...)
    return arr
}

// Example usage
arr := []int{1, 2, 3, 4, 5}
arr = insertAtIndex(arr, 2, 99)
// Output: arr = [1, 2, 99, 3, 4, 5]
Enter fullscreen mode Exit fullscreen mode

4. Traversal of Arrays

Definition:

Traversal is the process of accessing each element of an array exactly once for processing. It is commonly done using loops.

Example Problem:

Write a function to print all elements of an array.

func printArray(arr []int) {
    for _, value := range arr {
        fmt.Println(value)
    }
}

// Example usage
arr := []int{1, 2, 3, 4, 5}
printArray(arr)
// Output: 1 2 3 4 5
Enter fullscreen mode Exit fullscreen mode

5. Static vs. Dynamic Arrays

Static Arrays:

  • Size is fixed at compile time.
  • Memory is allocated on the stack.
  • Example: int arr[5]; in C/C++.

Dynamic Arrays:

  • Size can be determined at runtime.
  • Memory is allocated on the heap.
  • In languages like Go, dynamic arrays are implemented using slices.

Example Problem:

Compare the usage of static and dynamic arrays.

// Static array (size fixed at compile time)
var staticArr [5]int

// Dynamic array (size determined at runtime)
dynamicArr := make([]int, 0)
dynamicArr = append(dynamicArr, 1, 2, 3)
Enter fullscreen mode Exit fullscreen mode

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay