java基礎(chǔ)之初始化ArrayList時直接賦值的4種方式總結(jié)
在Java中,初始化ArrayList時直接賦值有以下幾種常見方式:
構(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)部類(不常用且可能引起混淆,實際編程中很少這樣用):
// 不推薦此做法,僅作展示
ArrayList<String> list = new ArrayList<String>() {{
add("item1");
add("item2");
add("item3");
}};
注意:這種方式利用了匿名內(nèi)部類的實例初始化塊,但不是標準做法,因為它違反了“面向接口”的編程原則,且可能導致代碼難以理解。
通過循環(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ù)據(jù)較小并且已知,直接在聲明時初始化也是最佳實踐之一。對于較大的數(shù)據(jù)集或者動態(tài)生成的數(shù)據(jù),使用循環(huán)或流API則更為靈活。
附:ArrayList兩個對象之間的賦值
List<String> list1 = new ArrayList<String>(); List<String> list2 = new ArrayList<String>(); list1 = list2;
這種方法只是將list2的地址賦值給了list1。也就是list1的地址指向了list2的地址,也就是兩個list相當于一個list,因為他們指向了同一個地址值。而原來的list1的原先對象會被垃圾回收機制回收掉。
正確的賦值方法是:
List <String> list1 = new ArrayList<String>(); //方法一:利用集合自帶的構(gòu)造方法 List<String> list2= new ArrayList<String>(list1); //方法二:利用克隆的方法進行賦值 List<String> list2 =(ArrayList<String>) list1.clone();
總結(jié)
到此這篇關(guān)于java基礎(chǔ)之初始化ArrayList時直接賦值的4種方式的文章就介紹到這了,更多相關(guān)java初始化ArrayList時直接賦值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringSecurity請求授權(quán)規(guī)則配置與注解詳解
這篇文章主要介紹了SpringSecurity請求授權(quán)規(guī)則配置與注解詳解,我們常使用@Secured與@PreAuthorize兩個注解在進入方法前進行角色、權(quán)限的控制,進入方法前數(shù)據(jù)的過濾@PreFilter注解偶爾會看到,需要的朋友可以參考下2023-12-12
SpringBoot+Vue實現(xiàn)動態(tài)菜單的思路梳理
這篇文章主要為大家詳細介紹了利用SpringBoot+Vue實現(xiàn)動態(tài)菜單的思路梳理,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下2022-07-07
Java將科學計數(shù)法數(shù)據(jù)轉(zhuǎn)為字符串的實例
下面小編就為大家?guī)硪黄狫ava將科學計數(shù)法數(shù)據(jù)轉(zhuǎn)為字符串的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
springboot中使用ConstraintValidatorContext驗證兩個字段內(nèi)容相同
開發(fā)修改密碼功能時,通過ConstraintValidator校驗新密碼和確認新密碼的一致性,首先定義Matches注解和DTO對象,然后創(chuàng)建MatchesValidator類實現(xiàn)驗證邏輯,對springboot驗證字段內(nèi)容相同問題感興趣的朋友一起看看吧2024-10-10
Mybatis-Plus進階分頁與樂觀鎖插件及通用枚舉和多數(shù)據(jù)源詳解
這篇文章主要介紹了Mybatis-Plus的分頁插件與樂觀鎖插件還有通用枚舉和多數(shù)據(jù)源的相關(guān)介紹,文中代碼附有詳細的注釋,感興趣的朋友來看看吧2022-03-03

