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算法之静态内部类实现雪花算法,对算法感兴趣的同学,一定要看一下
    2021-05-05
  • 详解SpringBean基于XML的装配

    详解SpringBean基于XML的装配

    Bean的装配可以理解为依赖关系注入,Bean的装配方式也就是Bean 的依赖注入方式.Spring容器支持多种形式的Bean的装配方式,如基于XML的Bean装配,基于Annotation的Bean装配和自动装配等.本文就带大家了解SpringBean基于XML的装配,需要的朋友可以参考下
    2021-05-05
  • MyBatis中的连接池及事物控制配置过程

    MyBatis中的连接池及事物控制配置过程

    连接池就是用于存储数据库连接的一个容器,容器其实就是一个集合对象,本文给大家介绍MyBatis中的连接池以及事物控制的相关知识,感兴趣的朋友一起看看吧
    2021-05-05
  • Idea2019创建Springboot Web项目的方法步骤

    Idea2019创建Springboot Web项目的方法步骤

    这篇文章主要介绍了Idea2019创建Springboot Web项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • SpringBoot中@ConditionalOnProperty注解的使用方法详解

    SpringBoot中@ConditionalOnProperty注解的使用方法详解

    这篇文章主要介绍了SpringBoot中@ConditionalOnProperty注解的使用方法详解,在开发基于SpringBoot框架的项目时,会用到下面的条件注解,有时会有需要控制配置类是否生效或注入到Spring上下文中的场景,可以使用@ConditionalOnProperty注解来控制,需要的朋友可以参考下
    2024-01-01
  • Dubbo服务校验参数的解决方案

    Dubbo服务校验参数的解决方案

    这篇文章主要介绍了Dubbo服务如何优雅的校验参数,Dubbo框架本身是支持参数校验的,同时也是基于JSR303去实现的,今天通过示例代码介绍下详细实现过程,需要的朋友可以参考下
    2022-03-03
  • java连接mysql数据库详细步骤解析

    java连接mysql数据库详细步骤解析

    以下是对java连接mysql数据库的具体详细步骤进行了分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • Springboot使用Spring Data JPA实现数据库操作

    Springboot使用Spring Data JPA实现数据库操作

    Spring Data JPA 是 Spring 基于 Spring Data 框架、在JPA 规范的基础上开发的一个框架,使用 Spring Data JPA 可以极大地简化JPA 的写法,本章我们将详细介绍在Springboot中使用 Spring Data JPA 来实现对数据库的操作
    2021-06-06
  • Spring:bean注入--Set方法注入

    Spring:bean注入--Set方法注入

    这篇文章主要给大家总结介绍了关于Spring注入Bean的一些方式,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2021-07-07
  • Java 超详细讲解异常的处理

    Java 超详细讲解异常的处理

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等
    2022-04-04

最新评论