java中Map和List初始化的N種方法總結(jié)
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)建了一個對象構(gòu)造塊。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot使用@ControllerAdvice全局異常處理
這篇文章主要介紹了SpringBoot使用@ControllerAdvice全局異常處理,異常處理是非常重要的一部分,它可以幫助我們捕獲并處理應(yīng)用程序中出現(xiàn)的異常情況,提高應(yīng)用程序的健壯性和可靠性,需要的朋友可以參考下2023-07-07

