Java 中 Map 初始化的几种方法

这篇具有很好参考价值的文章主要介绍了Java 中 Map 初始化的几种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方式1:传统方式

# 传统方式
Map<String, String> map = new HashMap<>();
map.put("k1", "v1");
map.put("k2", "v2");

private static final Map<String, String> map = new HashMap<>();
static {
    map .put("key1", "value1");
    map .put("key2", "value2");
}

方式2:java8新特性-双括号初始化

# java8新特性-双括号初始化
Map<String, String> map1 = new HashMap<>() {{
    put("k1", "v1");
    put("k2", "v2");
}};

private static final HashMap<String, String> myMap1 = new HashMap<>() {{
    put("key1", "value1");
    put("key2", "value2");
}};

匿名内部类通常会导致内存泄漏问题,因为它会隐式地持有外部类的引用,如果外部类的引用一直存在而没有释放,它所持有的内存也就不会被垃圾回收机制回收,产生内存泄漏。而通过使用静态内部类或者弱引用等技术可以避免这个问题。
[Ref] 内存泄露原因之一:匿名内部类

方式3:java9新特性-最简便的方式

# java9新特性-最简便的方式
Map<String, String> map = Map.of("k1", "v1", "k2", "v2");

# 不可变集合
private static final Map<String, String> map = Map.of(); 
private static final Map<String, String> map = Map.of("kye1", "value1", "key2", "value2"); 
private static final Map<String, String> map = Map.of("kye1", "value1", "key2", "value2","kye3", "value1","kye4", "value1","kye5", "value1","kye6", "value1","kye7", "value1","kye8", "value1","kye9", "value10","kye10", "value1");

方式4:com.google.guava提供的方法

# com.google.guava提供的方法
Map<String, String> myMap3 = ImmutableMap.of("kye1", "value1", "key2", "value2");
Map<String, String> myMap4 = ImmutableMap.<String, String>builder().put("kye1", "value1").put("key2", "value2").build();

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>30.1.1-jre</version>
</dependency>

参考
Java Map初始化的几种方法
Map用法总结文章来源地址https://www.toymoban.com/news/detail-754202.html

到了这里,关于Java 中 Map 初始化的几种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QTextDocument的使用方法及几种初始化方式

    qtextDocument并不像控件一样可以通过拖拽方式拉到设计器中使用,也不能直接声明就可以初始化使用,而是需要通过包涵库文件的方式包涵在当前的窗体文件中。 如: 上面说了Qtextdocument并不是控件,它是辅助配合QT中的文本编辑控件进行文本操作的类库。 QTextDocument在使用之

    2024年02月09日
    浏览(37)
  • C语言中结构体初始化并清零的方法有几种?

    结构体初始化清零方法 在C语言中,结构体初始化并清零的方法有以下几种: 手动赋值为0:结构体定义后在函数内手动将每个成员都赋值为0。例如: 使用memset()函数:可以使用  memset()  函数将结构体的所有成员都设置为0。例如: C99标准的方式:C99标准新增了一个特性,可

    2024年02月17日
    浏览(28)
  • fastjson json字符串转map的几种方法

    参考:fastjson将json字符串转化成map的五种方法 - 何其小静 - 博客园 (cnblogs.com) 源码: 第一种 Map maps = (Map)JSON.parse(str); 第二种 Map mapTypes = JSON.parseObject(str); JSONObject实现了Map,所以可以用Map接收 

    2024年02月16日
    浏览(33)
  • java中初始化数组的方法

    方式一: 注:此种方式创建的数组,如不显式初始化数组元素,则各元素为当前数据类型的默认值。基本数据类型为0,对象类型为null。所以使用前需要将各元素显式赋值。 方式二: 注:此方式与方式一的结果相同,但是更简便。 方式三: 注:此方式与方式一和方式二的结

    2024年02月12日
    浏览(32)
  • java中对象和Map互相转换的几种方式

    在Java中,将对象和Map相互转换是常见的操作,可以通过不同的方式实现这种转换。以下是几种常见的方法以及示例说明: 1. 使用Hutool工具类 Hutool是一个优秀的Java工具包,提供了丰富的工具方法,其中就包括对象和Map之间转换的工具方法。 示例: Hutool的 BeanUtil 提供了 bean

    2024年02月03日
    浏览(30)
  • 【Java】构造方法及类的初始化

    活动地址:CSDN21天学习挑战赛 ✨ 博客主页: XIN-XIANG荣 ✨ 系列专栏: 【Java SE】 ✨ 一句短话: 难在坚持,贵在坚持,成在坚持! 构造方法(也称为构造器)是一个特殊的成员方法,其名字必须与类名相同,在创建对象时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。

    2023年04月10日
    浏览(33)
  • java 对象list使用stream根据某一个属性转换成map的几种方式

    可以使用Java 8中的Stream API将List转换为Map,并根据某个属性作为键或值。以下是一些示例代码: 在这个示例中,将Person对象列表转换为Map,其中键为Person对象的name属性,值为Person对象本身。 在这个示例中,将Person对象列表转换为Map,其中键为Person对象本身,值为Person对象的

    2024年02月13日
    浏览(41)
  • 【SpringBoot系列】初始化机制几种实现策略模式

    前言 Spring Boot是一个用于快速构建基于Spring框架的应用程序的开发框架。 它提供了许多便捷的功能和特性,使得开发者可以更加高效地开发和部署应用程序。 其中,初始化策略是Spring Boot中一个重要的概念,它决定了应用程序在启动时如何进行初始化和配置。 本文将介绍S

    2024年02月07日
    浏览(32)
  • 【Java】Java中类的初始化顺序(静态方法,静态块,非静态块,最后有流程图)

       📝个人主页:哈__ 期待您的关注  在日常使用Java的时候,我们都接触过 new 这个,那你是否知道在我们的对象真正创建出来之前都做了哪些事情呢? 实际上要去判断一个类的初始化的顺序,需要分一下情况,一种是没有继承关系的类(不考虑 Object 类),一种是有

    2024年04月11日
    浏览(31)
  • 【Java基础教程】(八)面向对象篇 · 第二讲:Java 数组全面解析——动态与静态初始化、二维数组、方法参数传递、排序与转置、对象数组、操作API~

    掌握数组的动态及静态创建方式、使用及特征; 掌握引用类型数据的特征; 掌握数组的排序、转置操作; 数组可以将多个变量进行统一的命名,这样相同类型的元素就可以按照一定的顺序进行组合排列 。在 Java中,数组属于引用类型数据,所以在数组的操作过程中,也一定

    2024年02月13日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包