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

 更新时间:2023年03月22日 10:09:42   作者:网瘾少年徐志摩  
这篇文章主要介绍了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");  

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

又叫匿名内部类初始化法,会产生大量的匿名内部类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));
       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的相互转换方法初始化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 = new HashMap<String, Object>(2) {{
    put("key1", "obj1");
    put("key2", "obj2");
}};

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

外层“{}”创建了一个匿名子类,内层“{}”创建了一个对象构造块。

总结

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

相关文章

  • Java开发过程中关于异常处理的详解

    Java开发过程中关于异常处理的详解

    异常是程序中的一些错误,但不是所有错误都是异常,且错误有时候是可以避免的。比如说,你的代码少一个分号,那运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常
    2021-10-10
  • java开发_图片截取工具实现原理

    java开发_图片截取工具实现原理

    本文将详细介绍java开发_图片截取工具实现原理,需要了解的朋友可以参考下
    2012-11-11
  • Netty实现自定义协议编解码器

    Netty实现自定义协议编解码器

    这篇文章主要为大家介绍了Netty实现自定义协议编解码器示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Ubuntu快速安装jdk的教程

    Ubuntu快速安装jdk的教程

    这篇文章主要为大家详细介绍了Ubuntu快速安装jdk的教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • spring拓展之如何定义自己的namespace

    spring拓展之如何定义自己的namespace

    这篇文章主要介绍了spring拓展之如何定义自己的namespace方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • SpringBoot使用@ControllerAdvice全局异常处理

    SpringBoot使用@ControllerAdvice全局异常处理

    这篇文章主要介绍了SpringBoot使用@ControllerAdvice全局异常处理,异常处理是非常重要的一部分,它可以帮助我们捕获并处理应用程序中出现的异常情况,提高应用程序的健壮性和可靠性,需要的朋友可以参考下
    2023-07-07
  • java的三种随机数生成方式

    java的三种随机数生成方式

    主要介绍了java的三种随机数生成方式的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2021-07-07
  • java搜索无向图中两点之间所有路径的算法

    java搜索无向图中两点之间所有路径的算法

    这篇文章主要介绍了java搜索无向图中两点之间所有路径的算法
    2019-01-01
  • Java不可变类机制浅析

    Java不可变类机制浅析

    所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值。如JDK内部自带的很多不可变类:Interger、Long和String等。接下来通过本文给大家介绍Java不可变类机制,需要的朋友参考下
    2017-02-02
  • map实现按value升序排序

    map实现按value升序排序

    map内部是按照hash算法存储的,但如果能对map排序在某些时候还是有用的,下面实现对map按照value升序排序,实现对map按照key排序,大家参考使用吧
    2014-01-01

最新评论