java基礎(chǔ)之初始化ArrayList時(shí)直接賦值的4種方式總結(jié)
在Java中,初始化ArrayList時(shí)直接賦值有以下幾種常見方式:
構(gòu)造器傳入集合:
List<String> list = new ArrayList<>(Arrays.asList("item1", "item2", "item3"));
或者在Java 9及以上版本中使用List.of()方法創(chuàng)建不可變列表:
List<String> list = new ArrayList<>(List.of("item1", "item2", "item3"));
使用匿名內(nèi)部類(不常用且可能引起混淆,實(shí)際編程中很少這樣用):
// 不推薦此做法,僅作展示
ArrayList<String> list = new ArrayList<String>() {{
add("item1");
add("item2");
add("item3");
}};
注意:這種方式利用了匿名內(nèi)部類的實(shí)例初始化塊,但不是標(biāo)準(zhǔn)做法,因?yàn)樗`反了“面向接口”的編程原則,且可能導(dǎo)致代碼難以理解。
通過循環(huán)或流API填充:
// 循環(huán)添加
List<Integer> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
list.add(i);
}
// Java 8+ 使用Stream API
List<Integer> list2 = Stream.of(1, 2, 3, 4, 5).collect(Collectors.toCollection(ArrayList::new));
使用addAll方法:
List<Integer> initialData = Arrays.asList(1, 2, 3); List<Integer> list = new ArrayList<>(); list.addAll(initialData);
通常最常見的是方式一是直接在構(gòu)造ArrayList時(shí)傳入已有的集合,這種方式簡潔高效。不過,如果初始數(shù)據(jù)較小并且已知,直接在聲明時(shí)初始化也是最佳實(shí)踐之一。對于較大的數(shù)據(jù)集或者動(dòng)態(tài)生成的數(shù)據(jù),使用循環(huán)或流API則更為靈活。
附:ArrayList兩個(gè)對象之間的賦值
List<String> list1 = new ArrayList<String>(); List<String> list2 = new ArrayList<String>(); list1 = list2;
這種方法只是將list2的地址賦值給了list1。也就是list1的地址指向了list2的地址,也就是兩個(gè)list相當(dāng)于一個(gè)list,因?yàn)樗麄冎赶蛄送粋€(gè)地址值。而原來的list1的原先對象會(huì)被垃圾回收機(jī)制回收掉。
正確的賦值方法是:
List <String> list1 = new ArrayList<String>(); //方法一:利用集合自帶的構(gòu)造方法 List<String> list2= new ArrayList<String>(list1); //方法二:利用克隆的方法進(jìn)行賦值 List<String> list2 =(ArrayList<String>) list1.clone();
總結(jié)
到此這篇關(guān)于java基礎(chǔ)之初始化ArrayList時(shí)直接賦值的4種方式的文章就介紹到這了,更多相關(guān)java初始化ArrayList時(shí)直接賦值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java使用jacob.jar將word轉(zhuǎn)pdf
這篇文章主要為大家詳細(xì)介紹了java利用jacob.jar將word轉(zhuǎn)pdf,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
SpringBoot左腳進(jìn)門之Maven管理家具體步驟
Maven 是一個(gè)項(xiàng)目管理和整合工具,通過對 目錄結(jié)構(gòu)和構(gòu)建生命周期 的標(biāo)準(zhǔn)化, 使開發(fā)團(tuán)隊(duì)用極少的時(shí)間就能夠自動(dòng)完成工程的基礎(chǔ)構(gòu)建配置,本文介紹SpringBoot左腳進(jìn)門之Maven管理家具體步驟,感興趣的朋友一起看看吧2024-12-12
在springboot中對kafka進(jìn)行讀寫的示例代碼
本篇文章主要介紹了在springboot中對kafka進(jìn)行讀寫的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
Springboot?Mybatis使用pageHelper如何實(shí)現(xiàn)分頁查詢
這篇文章主要介紹了Springboot?Mybatis使用pageHelper如何實(shí)現(xiàn)分頁查詢問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
SpringBoot 導(dǎo)出數(shù)據(jù)生成excel文件返回方式
這篇文章主要介紹了SpringBoot 導(dǎo)出數(shù)據(jù)生成excel文件返回方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10

