How to initialize an ArrayList in one line
Here’s a few ways to initialize an java.util.ArrayList
, see the following full example:
InitArrayList.java
package com.mkyong.examples;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class InitArrayList {
public static void main(String[] args) {
//1. Normal way
List<String> list = new ArrayList<String>();
list.add("String A");
list.add("String B");
list.add("String C");
System.out.println("List 1......");
for (String temp : list) {
System.out.println(temp);
}
//2. Anonymous inner class
List<String> list2 = new ArrayList<String>() {
{
add("String A");
add("String B");
add("String C");
}
};
System.out.println("List 2......");
for (String temp : list2) {
System.out.println(temp);
}
//3. One line
List<String> list3 = Arrays.asList("String A", "String B", "String C");
System.out.println("List 3......");
for (String temp : list3) {
System.out.println(temp);
}
}
}
Output
List 1......
String A
String B
String C
List 2......
String A
String B
String C
List 3......
String A
String B
String C
in one line Arrays.asList returns a list already.
So List list = Arrays.asList(“String A”, “StringB”); is enough
Creating a private static final long serialVersionUID = 1L; is more appropriate work for 2nd suggested way!!
2nd Way is not appropriate in terms of performance.
courtesy of above line – http://stackoverflow.com/questions/924285/efficiency-of-java-double-brace-initialization
Thanks.
Your posts are awesome, thanks for all your work and helping us.
I find the 3rd way especially convenient.
Best regards,
Paulo
Watch out for UnsoppertedOperationException when processing the list:
http://stackoverflow.com/questions/5755477/java-list-addobject-unsupportedoperationexception
I LOVE YOUR WORK.
KEEP UP THE GOOD WORK!
THANK YOU SO MUCH MKYONG.
YOU ARE MY STAR!!!