java list初始化的几种方式
/**
* java8 下List初始化的四种方法
*/
public void myArray(){
/**
* java包下有两种ArrayList 分别存在于java.util.ArrayList 和 java.util.Arrays.ArrayList
*
*1 java.util.ArrayList 继承AbstractList 重写了其add get grow等方法
*
* 2java.util.Arrays.ArrayList 下面的asList 这里面没有重新实现add方法,不可以进行add操作 add报出UnsupportedOperationException异常
* (也就是说Arrays.asList方法只是把数组转化为定长List的一个方法)
*/
String[] arr=new String[]{"11","bb"};
//1通过构造方法创建arrayList,然后调用add方法(jdk自带,但是代码冗余不推荐使用)
List arrayList1=new ArrayList<>();
arrayList1.add(arr[0]);
//2 java8可以通过Stream的方式来新建ArrayList(jdk8自带,推荐使用)
List arrayList2= Stream.of("aa","bb").collect(Collectors.toList());
//3通过guava提供的方法 (需要依赖google.common.collect,不是很推荐使用)
List arrayList3= Lists.newArrayList(arr);
//4 java.util.Arrays 下面的构造方法(jdk自带,但是生成的java.util.Arrays.ArrayList,
// 调用add方法会报出UnsupportedOperationException异常,尽量不要使用)
List arrayList4= Arrays.asList("a", "b");
/**
* 总结:在java8中 既不依赖于外部包又方便还实现了所有的list方法的list初始化方法 首推Stream方法
* eg:List<String> arrayList2= Stream.of(arr).collect(Collectors.toList());
*
*/
}