开发者

java中Map和List初始化的N种方法总结

目录
  • Map和List初始化方法
    • 第一种方法(常用方法)
    • 第二种方法(双括号初始化法)
    • 第三种,stream初始化
  • 初始化Map和List小技巧(指定容量+匿名内部类初始化)
    • 总结

      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", "valujavascripte1"); 
      map.put("key2", "value2"); 
      map.put("keyN", "valueN开发者_JAVA学习"); 

      第二种方法(双括号初始化法)

      又叫匿名内部类初始化法,会产生大量的匿名内部类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创建并初始化,但是注意创建的是不可变集合

      Map map = Stream.of(1,2,3,4).collect(Collectors.toMap(o -> 编程o,integer -> integer,(o, o2) -> o2,HashMap::new));
         SIcBdxzSnzystem.out.println(jsONObject.toJSONString(map));
      
      List list = Stream.of(1,2,3,4).collect(Collectors.toList());
         System.out.println(JSONObject.toJSONString(list));

      其他:

      利用Array与ArrayList的相互转换方法初始化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小技巧(指定容量+匿名内部类初始化)

      在初始化Map和List时,可以手动指定其容量,然后按照匿名内部类这种方式初始化数据,代码看起来会很清爽。

      List<String> list = new ArrayList<String>(2) {{
        add("1");
        add("2");
      }};
      
      Map<String, Object> map = nhttp://www.devze.comew HashMap<String, Object>(2) {{
        put("key1", "obj1");
        put("key2", "obj2");
      }};

      在已经知道容量大小的情况下,指定容量会减小开销。

      外层“{}&rdqu编程客栈o;创建了一个匿名子类,内层“{}”创建了一个对象构造块。

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新开发

      开发排行榜