WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Java Collections · Basic · question 4 of 100

What is the difference between an ArrayList and a LinkedList in Java?

📕 Buy this interview preparation book: 100 Java Collections questions & answers — PDF + EPUB for $5

In Java, both ArrayList and LinkedList are classes that implement the List interface in the Java Collections Framework. They both represent an ordered collection of objects, but they have some key differences in terms of performance and memory usage.

Memory usage: An ArrayList stores its elements in a contiguous block of memory, meaning that it is more memory-efficient than a LinkedList in terms of space usage. A LinkedList, on the other hand, stores its elements as individual objects with pointers to the next and previous elements, meaning that it uses more memory than an ArrayList.

Performance: An ArrayList is faster than a LinkedList when it comes to accessing elements by index, as it can quickly calculate the memory address of an element based on its index. However, a LinkedList is faster than an ArrayList when it comes to adding or removing elements, as it only needs to update the pointers of adjacent elements.

Here’s an example of how to use an ArrayList and a LinkedList in Java:

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class Example {
    public static void main(String[] args) {
        // create an ArrayList
        List<Integer> myArrayList = new ArrayList<>();
        myArrayList.add(5);
        myArrayList.add(10);
        myArrayList.add(15);
        
        // create a LinkedList
        List<Integer> myLinkedList = new LinkedList<>();
        myLinkedList.add(5);
        myLinkedList.add(10);
        myLinkedList.add(15);
        
        // access an element by index
        int element1 = myArrayList.get(1);
        int element2 = myLinkedList.get(1);
        System.out.println("Element at index 1 of ArrayList: " + element1);
        System.out.println("Element at index 1 of LinkedList: " + element2);
        
        // add an element at the beginning of the list
        myArrayList.add(0, 0);
        myLinkedList.add(0, 0);
        
        // remove an element from the beginning of the list
        myArrayList.remove(0);
        myLinkedList.remove(0);
        
        // print out the contents of the lists
        System.out.println("ArrayList: " + myArrayList);
        System.out.println("LinkedList: " + myLinkedList);
    }
}

In this example, we create an ArrayList called "myArrayList" and a LinkedList called "myLinkedList", and add some integers to each list. We then access an element at index 1 of both lists using the "get" method, and print out the results. We then add an element to the beginning of each list using the "add" method with an index of 0, and remove an element from the beginning of each list using the "remove" method with an index of 0. Finally, we print out the contents of both lists using the "println" method.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Java Collections interview — then scores it.
📞 Practice Java Collections — free 15 min
📕 Buy this interview preparation book: 100 Java Collections questions & answers — PDF + EPUB for $5

All 100 Java Collections questions · All topics