java中Map和List初始化的N種方法總結
Map和List初始化方法
第一種方法(常用方法)
//初始化List ?
List<string> list = new ArrayList<string><string>(); ?
list.add("string1"); ?
list.add("string2"); ?
list.add("stringN"); ?
//初始化Map ?
Map</String , Object> map = new HashMap</String , Object>(); ?
map.put("key1", "value1"); ?
map.put("key2", "value2"); ?
map.put("keyN", "valueN"); ?第二種方法(雙括號初始化法)
又叫匿名內(nèi)部類初始化法,會產(chǎn)生大量的匿名內(nèi)部類class,不建議使用
//初始化List ?
?List<string> list = new ArrayList<string>(){{ ?
? ? ?add("string1"); ?
? ? ?add("string2"); ?
? ? ?add("stringN"); ?
?}}; ?
??
?//初始化Map ?
?Map</String , String> map = new HashMap</String , Object>(){{ ?
? ? ?put("key1", "value1"); ?
? ? ?put("key2", "value2"); ?
? ? ?put("keyN", "valueN"); ?
?}};?第三種,stream初始化
在Java9中可使用LIst.of Map.of Set.of創(chuàng)建并初始化,但是注意創(chuàng)建的是不可變集合
Map map = Stream.of(1,2,3,4).collect(Collectors.toMap(o -> o,integer -> integer,(o, o2) -> o2,HashMap::new)); ? ? ? ?System.out.println(JSONObject.toJSONString(map)); List list = Stream.of(1,2,3,4).collect(Collectors.toList()); ? ? ? ?System.out.println(JSONObject.toJSONString(list));
其他:
利用Array與ArrayList的相互轉(zhuǎn)換方法初始化ArrayList,代碼如下:
ArrayList<String> list = new ArrayList(Arrays.asList("Tom", "Jerry", "Mike")); ?利用Collections初始化
?? ?List<Integer> useCases = new ArrayList<Integer>(); ??? ?Collections.addAll(useCases, 47, 48, 49, 50);
初始化Map和List小技巧(指定容量+匿名內(nèi)部類初始化)
在初始化Map和List時,可以手動指定其容量,然后按照匿名內(nèi)部類這種方式初始化數(shù)據(jù),代碼看起來會很清爽。
List<String> list = new ArrayList<String>(2) {{
? ? add("1");
? ? add("2");
}};
Map<String, Object> map = new HashMap<String, Object>(2) {{
? ? put("key1", "obj1");
? ? put("key2", "obj2");
}};在已經(jīng)知道容量大小的情況下,指定容量會減小開銷。
外層“{}”創(chuàng)建了一個匿名子類,內(nèi)層“{}”創(chuàng)建了一個對象構造塊。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
springboot中websocket簡單實現(xiàn)
本文主要介紹了springboot中websocket簡單實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01
解決SpringBoot配置文件application.yml遇到的坑
這篇文章主要介紹了解決SpringBoot配置文件application.yml遇到的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
Spring Boot中整合Spring Security并自定義驗證代碼實例
本篇文章主要介紹了Spring Boot中整合Spring Security并自定義驗證代碼實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04

