1挟憔、通過構(gòu)造方法层亿,例如:List<String> list = new ArrayList<>();
然后調(diào)用list.add增加元素橡娄,如果知道初始化的值寄纵,這種先構(gòu)造再一項(xiàng)項(xiàng)添加的方式鳖敷,用起來并不爽,于是一邊都用下面的方法
2擂啥、通過Arrays.asList("a", "b");
但是這種方法構(gòu)造出的List是固定長(zhǎng)度的哄陶,如果調(diào)用add方法增加新的元素帆阳,會(huì)報(bào)異常:java.lang.UnsupportedOperationException哺壶,其實(shí)也可以理解,這個(gè)List是由Array轉(zhuǎn)換而來蜒谤,而Array是不能動(dòng)態(tài)增加長(zhǎng)度的山宾,適合于構(gòu)造靜態(tài)不變List,
3鳍徽、通過Java8引入的Stream提供的方法:List list = Stream.of("a", "b").collect(Collectors.toList());
這種方式跟第二種類似资锰,但是list可以動(dòng)態(tài)添加元素,比較友好阶祭,適合于構(gòu)造動(dòng)態(tài)List
4绷杜、通過guava提供的方法直秆,List list3 = Lists.newArrayList("f", "g");
適合于構(gòu)造動(dòng)態(tài)List,雖然只是個(gè)語法題鞭盟,但是易用性確實(shí)好很多圾结,可以用一個(gè)簡(jiǎn)單語句代替之前用很多語句才能實(shí)現(xiàn)的功能,方便表達(dá)出程序員的想法齿诉。Guava里的很多方法都非常方便筝野,相信基本都是來自于實(shí)踐中的痛點(diǎn),對(duì)JDK里的方法是個(gè)很好的補(bǔ)充粤剧。