This question already has an answer here:
-
Initialization of an ArrayList in one line
30 answers
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'];
}
}
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:
Java 8 solution using Stream
:
Stream.of("xyz", "abc").collect(Collectors.toList());
Use:
List<String> x = new ArrayList<>(Arrays.asList("xyz", "abc"));
If you don't want to add new elements to the list later, you can also use (Arrays.asList returns a fixed-size list):
List<String> x = Arrays.asList("xyz", "abc");
Note: you can also use a static import if you like, then it looks like this:
import static java.util.Arrays.asList;
...
List<String> x = new ArrayList<>(asList("xyz", "abc"));
or
List<String> x = asList("xyz", "abc");
You can do like this :
List<String> temp = new ArrayList<String>(Arrays.asList("1", "12"));
The Guava library contains convenience methods for creating lists and other collections which makes this much prettier than using the standard library classes.
Example:
ArrayList<String> list = newArrayList("a", "b", "c");
(This assumes import static com.google.common.collect.Lists.newArrayList;
)
Try this!
List<String> x = new ArrayList<String>(Arrays.asList("xyz", "abc"));
It's a good practice to declare the ArrayList
with interface List
if you don't have to invoke the specific methods.
Use this one:
ArrayList<String> x = new ArrayList(Arrays.asList("abc", "mno"));