java list初始化的几种方式

2019-12-01  本文已影响0人  北方_f6b4

/**

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

*

*/

}

上一篇下一篇

猜你喜欢

热点阅读