1、透過構造方法,例如:List list = new ArrayList<>();然後呼叫list.add增加元素,如果知道初始化的值,這種先構造再一項項新增的方式,用起來並不爽,於是一邊都用下面的方法
2、透過Arrays.asList(“a”, “b”);但是這種方法構造出的List是固定長度的,如果呼叫add方法增加新的元素,會報異常:java.lang.UnsupportedOperationException,其實也可以理解,這個List是由Array轉換而來,而Array是不能動態增加長度的,適合於構造靜態不變List,
3、透過Java8引入的Stream提供的方法:List list = Stream.of(“a”, “b”).collect(Collectors.toList());這種方式跟第二種類似,但是list可以動態新增元素,比較友好,適合於構造動態List
4、透過guava提供的方法,List list3 = Lists.newArrayList(“f”, “g”);適合於構造動態List,雖然只是個語法題,但是易用性確實好很多,可以用一個簡單語句代替之前用很多語句才能實現的功能,方便表達出程式設計師的想法。Guava裡的很多方法都非常方便,相信基本都是來自於實踐中的痛點,對JDK裡的方法是個很好的補充。
1、透過構造方法,例如:List list = new ArrayList<>();然後呼叫list.add增加元素,如果知道初始化的值,這種先構造再一項項新增的方式,用起來並不爽,於是一邊都用下面的方法
2、透過Arrays.asList(“a”, “b”);但是這種方法構造出的List是固定長度的,如果呼叫add方法增加新的元素,會報異常:java.lang.UnsupportedOperationException,其實也可以理解,這個List是由Array轉換而來,而Array是不能動態增加長度的,適合於構造靜態不變List,
3、透過Java8引入的Stream提供的方法:List list = Stream.of(“a”, “b”).collect(Collectors.toList());這種方式跟第二種類似,但是list可以動態新增元素,比較友好,適合於構造動態List
4、透過guava提供的方法,List list3 = Lists.newArrayList(“f”, “g”);適合於構造動態List,雖然只是個語法題,但是易用性確實好很多,可以用一個簡單語句代替之前用很多語句才能實現的功能,方便表達出程式設計師的想法。Guava裡的很多方法都非常方便,相信基本都是來自於實踐中的痛點,對JDK裡的方法是個很好的補充。