Java 9 版本以前,假如要創(chuàng)建一個包含 6 個元素的 Set 集合,程序需要先創(chuàng)建 Set 集合,然后調(diào)用 6 次 add() 方法向 Set 集合中添加元素。Java 9 對此進行了簡化,程序直接調(diào)用 Set、List、Map 的 of() 方法即可創(chuàng)建包含 N 個元素的不可變集合,這樣一行代碼就可創(chuàng)建包含 N 個元素的集合。
不可變意味著程序不能向集合中添加元素,也不能從集合中刪除元素。
如下程序示范了如何創(chuàng)建不可變集合。
public class Java9Collection {
public static void main(String[] args) {
// 創(chuàng)建包含4個元素的Set集合
Set set = Set.of("Java", "Kotlin", "Go", "Swift");
System.out.println(set);
// 不可變集合,下面代碼導致運行時錯誤
// set.add("Ruby");
// 創(chuàng)建包含4個元素的List集合
List list = List.of(34, -25, 67, 231);
System.out.println(list);
// 不可變集合,下面代碼導致運行時錯誤
// list.remove(1);
// 創(chuàng)建包含3個key-value對的Map集合
Map map = Map.of("語文", 89, "數(shù)學", 82, "英語", 92);
System.out.println(map);
填寫下面表單即可預約申請免費試聽java課程!害怕學不會?助教全程陪讀,隨時解惑!擔心就業(yè)?一地學習,可全國推薦就業(yè)!
// 不可變集合,下面代碼導致運行時錯誤
// map.remove("語文");
// 使用Map.entry()方法顯式構建key-value對
Map map2 = Map.ofEntries(Map.entry("語文", 89), Map.entry("數(shù)學", 82), Map.entry("英語", 92));
System.out.println(map2);
}
}
上面第 4、9、14 和 19 行代碼示范了如何使用集合元素創(chuàng)建不可變集合,其中 Set、List 比較簡單,程序只要為它們的 of() 方法傳入 N 個集合元素即可創(chuàng)建 Set、List 集合。
從上面代碼可以看出,創(chuàng)建不可變的 Map 集合有兩個方法。使用 of() 方法時只要依次傳入多個 key-value 對即可;還可使用 ofEntries() 方法,該方法可接受多個 Entry 對象,因此程序顯式使用 Map.entry() 方法來創(chuàng)建 Map.Entry 對象。
下一篇: 沒有了
初級會計職稱中級會計職稱經(jīng)濟師注冊會計師證券從業(yè)銀行從業(yè)會計實操統(tǒng)計師審計師高級會計師基金從業(yè)資格稅務師資產(chǎn)評估師國際內(nèi)審師ACCA/CAT價格鑒證師統(tǒng)計資格從業(yè)
一級建造師二級建造師消防工程師造價工程師土建職稱房地產(chǎn)經(jīng)紀人公路檢測工程師建筑八大員注冊建筑師二級造價師監(jiān)理工程師咨詢工程師房地產(chǎn)估價師 城鄉(xiāng)規(guī)劃師結構工程師巖土工程師安全工程師設備監(jiān)理師環(huán)境影響評價土地登記代理公路造價師公路監(jiān)理師化工工程師暖通工程師給排水工程師計量工程師
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級職稱護士資格證初級護師主管護師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗技師臨床醫(yī)學理論中醫(yī)理論