javaarraylistinitializationdeclare

How to declare an ArrayList with values?


ArrayList or List declaration in Java has questioned and answered how to declare an empty ArrayList but how do I declare an ArrayList with values?

I've tried the following but it returns a syntax error:

import java.io.IOException;
import java.util.ArrayList;

public class test {
    public static void main(String[] args) throws IOException {
        ArrayList<String> x = new ArrayList<String>();
        x = ['xyz', 'abc'];
    }
}

Solution

  • In Java 9+ you can use List.of to conveniently produce an unmodifiable list.

    var x = List.of("xyz", "abc");
    // 'var' works only for local variables
    

    Java 8 using Stream:

    Stream.of("xyz", "abc").collect(Collectors.toList());
    

    Or, in Java 16+, more briefly done with toList:

    Stream.of("xyz", "abc").toList());
    

    And of course, you can create a new object using the constructor that accepts a Collection:

    List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));
    

    Tip: The docs contains very useful information that usually contains the answer you're looking for. For example, here are the constructors of the ArrayList class:

    Constructs an empty list with an initial capacity of ten.

    Constructs a list containing the elements of the specified collection, in the order they are returned by the collection's iterator.

    Constructs an empty list with the specified initial capacity.