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 16 of 100

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

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

In Java, Vector and ArrayList are both classes that implement the List interface and provide similar functionality, but they have some differences:

Thread-safety: Vector is synchronized, which means that it is thread-safe and multiple threads can access and modify it concurrently without causing data corruption or inconsistency. ArrayList, on the other hand, is not synchronized, which means that it is not thread-safe and can only be safely accessed by a single thread at a time.

Performance: Because Vector is synchronized, it has a higher overhead than ArrayList in terms of memory and performance. ArrayList is generally faster and more memory-efficient than Vector, especially in single-threaded applications.

Capacity Increment: When a Vector needs to grow beyond its current capacity, it automatically doubles its capacity. ArrayList, on the other hand, increases its capacity by 50% of the current size.

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

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

public class Example {
    public static void main(String[] args) {
        // create a Vector of integers
        Vector<Integer> myVector = new Vector<>();
        myVector.add(1);
        myVector.add(2);
        myVector.add(3);
        
        // create an ArrayList of integers
        List<Integer> myList = new ArrayList<>();
        myList.add(1);
        myList.add(2);
        myList.add(3);
        
        // print out the contents of the Vector and the ArrayList
        System.out.println("Vector: " + myVector);
        System.out.println("ArrayList: " + myList);
    }
}

In this example, we create a Vector of integers called "myVector" and an ArrayList of integers called "myList". We then use the add() method to add three elements to both the Vector and the ArrayList, and use the toString() method to print out their contents.

The output of this program would be:

Vector: [1, 2, 3]
ArrayList: [1, 2, 3]

As you can see, both the Vector and the ArrayList contain the same elements.

In summary, Vector and ArrayList are both classes that implement the List interface in Java, but they have some differences in terms of thread-safety, performance, and capacity increment. Which one to use depends on the specific use case and requirements of your program. If thread-safety is not a concern, ArrayList is generally preferred due to its better performance and memory efficiency.

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