How to declare an ArrayList with values? [duplicat

2019-01-10 01:50发布

问题:

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'];
    }
}

回答1:

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:

  • ArrayList()

    Constructs an empty list with an initial capacity of ten.

  • ArrayList(Collection<? extends E> c) (*)

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

  • ArrayList(int initialCapacity)

    Constructs an empty list with the specified initial capacity.


Java 8 solution using Stream:

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


回答2:

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");


回答3:

You can do like this :

List<String> temp = new ArrayList<String>(Arrays.asList("1", "12"));


回答4:

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;)



回答5:

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.



回答6:

Use this one:

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