对于Java 9或更高版本:

是的,现在可以了.在Java 9中添加了几个简化地图创建的工厂方法:

// this works for up to 10 elements:

Map test1 = Map.of(

"a", "b",

"c", "d"

);

// this works for any number of elements:

Map test2 = Map.ofEntries(

entry("a", "b"),

entry("c", "d")

);

在上面的例子中,test和test2都是相同的,只是用不同的方式表达Map. Map.of方法是为地图中最多十个元素定义的,而Map.ofEntries方法没有这样的限制.

请注意,在这种情况下,生成的地图将是不可变的地图.如果您希望地图是可变的,可以再次复制,例如使用mutableMap = new HashMap<>(Map.of(“a”,“b”));

对于Java版本8:

不,您必须手动添加所有元素.您可以在匿名子类中使用初始化程序来使语法更短一些:

Map myMap = new HashMap<>() {{

put("a", "b");

put("c", "d");

}};

但是,在某些情况下,匿名子类可能会引入不需要的行为.这包括例如:

>它会生成一个额外的类,这会增加内存消耗,磁盘空间消耗和启动时间

>在非静态方法的情况下:它包含对调用创建方法的对象的引用.这意味着在创建的地图对象仍被引用时,外部类的对象不能被垃圾收集,从而阻塞了额外的内存

使用初始化函数还可以在初始化程序中生成地图,但避免了令人讨厌的副作用:

Map myMap = createMap();

private static Map createMap() {

Map myMap = new HashMap();

myMap.put("a", "b");

myMap.put("c", "d");

return myMap;

}

java 初始化hashmap_java – 如何直接初始化HashMap(以字面方式)...相关推荐

  1. 解析 Java 类和对象的初始化过程 由一个单态模式引出的问题谈起

    在 IBM Bluemix 云平台上开发并部署您的下一个应用. 开始您的试用 问题引入 近日我在调试一个枚举类型的解析器程序,该解析器是将数据库内一万多条枚举代码装载到缓存中,为了实现快速定位枚举代码 ...

  2. 解析 Java 类和对象的初始化过程

    跳转到主要内容 中国 [ 选择 ] dW 全部内容--------------  AIX and UNIX  Info Mgmt  Lotus  Rational  WebSphere-------- ...

  3. php键顺序初始化,Java类中各成员初始化的顺序

    了解Java中类各个成员的初始化顺序是非常重要的,这样你可以对类有全局的认识.不说太多,直接看下面的例子 class Father { static{ System. out.println(&quo ...

  4. Java类和对象的初始化顺序

    本文摘录于http://blog.csdn.net/socoolfj/archive/2006/05/23/750425.aspx,并修改例子的代码,加上自己的见解. 类装载步骤 在Java中,类装载 ...

  5. Java类的连接与初始化 (及2013阿里初始化笔试题解析)

    2019独角兽企业重金招聘Python工程师标准>>> Java虚拟机通过装载.连接.初始化来使得一个Java类型可以被Java程序所使用,如下图所示,其中连接过程又分为验证.准备. ...

  6. (002) java后台开发之对象初始化

    class Default{ boolean t;char c;byte b;short s;int i;long l;float f;double d;public void show() {Sys ...

  7. 【Java 虚拟机原理】Java 类中的类加载初始化细节 ( 只使用类中的常量时加载类不会执行到 ‘初始化‘ 阶段 )

    文章目录 一.类加载初始化时机 二.常量加载示例 三.数组加载示例 一.类加载初始化时机 类加载时机 : Java 程序执行时 , 并不是一开始将所有的字节码文件都加载到内存中 , 而是用到时才进行加 ...

  8. java并发中的延迟初始化

    不安全的延迟初始化示例: Java代码   public class UnsafeLazyInitialization { private static Resource resource; publ ...

  9. Java 父类子类的对象初始化过程

    转载自 Java 父类子类的对象初始化过程 摘要: Java基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况. 1. 基本初始化过程: 对于一个简单类的初始化过程是: ...

最新文章

  1. MVC5学习系列--Razor视图(一)
  2. android singleInstance返回问题
  3. 成功解决TypeError: sequence item 0: expected str instance, bytes found
  4. 160个CrackMe005
  5. Java使用继承的语法是,Java使用继承
  6. Springboot-application.properties
  7. 面向对象三大特性: 封装
  8. win10下安装pyspark及碰到的问题
  9. 面试官:你知道Redis得持久化机制吗?
  10. 使用webpack、babel、react、antdesign配置单页面应用开发环境
  11. Memcached概述
  12. TypeScript 的存在削弱了 JavaScript 生态系统?
  13. 从0教你用Python写网络爬虫,内容详细代码清晰,适合入门学习
  14. openwrt路由表设置_OpenWrt路由器常用设置
  15. 上海市计算机三级 是什么水平,上海计算机等级考试跟全国计算机等级考试有什么区别吗?...
  16. Spire.PDF 教程:在C#中显示或隐藏PDF图层
  17. 解读京东“拉黑门”:被拐弯的真相
  18. Photoshop学习(十六):使用矢量蒙版
  19. Windows下ORACLE 10g安装与操作图解
  20. python矩阵变成图片_Python图片转换成矩阵,矩阵数据转换成图片

热门文章

  1. R语言使用ggplot2包的快速可视化函数qplot绘制分组分组点图(带状图)实战
  2. R语言使用dplyr将特定的数据列移动到最前面、使用dplyr将特定数据列移动到另一指定数据列的后面、使用dplyr将特定数据列移动到另一指定数据列的前面
  3. R语言使用survminer包生存分析及可视化(ggsurvplot)实战详解:从数据集导入、生存对象生成、ggsurvplot可视化参数配置、设置、可视化对比
  4. Python可视化(matplotlib)在图像中添加文本和标记(Text and Annotation)
  5. R可视化包ggplot2设置轴范围
  6. java连接Hbase数据库
  7. 分类(classification)是认知的基础、分类步骤及主要算法、分类与回归的区别、分类过程
  8. vue main.js 引入 全局 js 统一导入 js
  9. 【文本分类】A C-LSTM Neural Network for Text Classification
  10. 机器学习--多标签softmax + cross-entropy交叉熵损失函数详解及反向传播中的梯度求导