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是固定長度的,如果調(diào)用add方法增加新的元素毡熏,會(huì)報(bào)異常:java.lang.UnsupportedOperationException坦敌,其實(shí)也可以理解,這個(gè)List是由Array轉(zhuǎn)換而來痢法,而Array是不能動(dòng)態(tài)增加長度的狱窘,適合于構(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è)簡單語句代替之前用很多語句才能實(shí)現(xiàn)的功能甘凭,方便表達(dá)出程序員的想法稀拐。Guava里的很多方法都非常方便,相信基本都是來自于實(shí)踐中的痛點(diǎn)丹弱,對JDK里的方法是個(gè)很好的補(bǔ)充德撬。