import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class asdas {
public static void main(String[] args) {
List list = Arrays.asList("jack","lisa","tom");
List lists1 = Arrays.asList(new String[]{"jack","lisa","tom"});
List list2 = new ArrayList();
boolean addAll = Collections.addAll(list2, new String[]{"jack","lisa","tom"});
List list3 = new ArrayList();
boolean addAll2 = Collections.addAll(list3, "jack","lisa","tom");
System.out.println("list:"+list);
System.out.println("list1:"+lists1);
System.out.println("list2:"+list2);
System.out.println("list3:"+list3);
}
}
运行结果:
list:[jack, lisa, tom]
list1:[jack, lisa, tom]
list2:[jack, lisa, tom]
list3:[jack, lisa, tom]
注意:
使用Arrays.asList这种方法生成的list是不能使用list.add remove等方法的,因为Arrays.asList()方法返回的是一个和ArrayList同名的自定义内部类,该内部类和ArrayList一样实现了
private static class ArrayList extends AbstractList
implements
RandomAccess, java.io.Serializable ,,,但是它没有自己重写add ,和remove,而是使用父类AbstractList里面的方法,导致使用add,remove时抛出父类中的异常,大家可以查看源码,所以说这是一个可读的List。不可对其操作。