Map 和 ImmutableMap 的区别

2024-04-13

我在支付网关公司工作,在分析我遇到的代码时 ImmutableMap 对象。我想知道有关的所有细节。它是什么? 与地图相比有什么优势? core java 支持 ImmuatbleMap 吗?


ImmutableMaps是在Guava中引入的,它们符合Java的MapAPI,但有额外的保证。

简而言之:

  • you cannot add, replace or remove entries
    • 如果条目对象没有可变状态,那么它们是“完全不可变的”
    • 因此,它们是线程安全的
  • null是被禁止的
  • 与通常的 Java 集合相比,(稍微)更节省时间和空间
  • 迭代顺序是可预测的

完整信息请参见番石榴的指南 https://github.com/google/guava/wiki/ImmutableCollectionsExplained#why and javadoc 为ImmutableCollection http://google.github.io/guava/releases/21.0/api/docs/com/google/common/collect/ImmutableCollection.html这适用于地图和其他 Guava 的不可变集合。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Map 和 ImmutableMap 的区别 的相关文章

随机推荐

  • Facebook 对话框、注销和访问令牌(Facebook iOS SDK)

    当使用这样的代码创建 Facebook 对话框时 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys apiKey api key nil
  • Apple Mac 和 Unix 时间戳

    我知道Apple系统上的主要时间戳是CF绝对时间值 也称为Mac绝对时间 它是根据自01 01 2001 00 00 00 UTC以来的秒数计算的32位整数 例如 219216022 解码后为 Thu 13 December 2007 05
  • 在 Objective C 中格式化浮点数

    我需要将浮点数 吸引人的标题 他 格式化为小数点后两位 但前提是这些小数位的值不为零 例子 我有一个名为 answer 的 NSTextField 在使用几个浮点进行一些数学运算后 我想将 answerFloat 变量分配给 answer
  • 无法正确设置PrintArea

    我正在使用 phpspreadsheet v1 3 1 我正在构建一个 Excel 文件 下载 一切正常 唯一的问题是定义 setPrintArea 它总是将标准 PrintArea 返回到 excel 中 基本上 我构建了 Excel 行
  • 根据特定参数值显示或隐藏 SSRS 列

    我无法根据所选参数值显示 隐藏列 我的报告是如何设置的 参数 ImportStatus ImportStatus 参数有三个值可供选择 M V E 如果我选择 ImportStatus value M 那么我希望报告显示特定列 目前 如果我
  • 如何通过扬声器而不是较弱的耳机扬声器播放音频?

    我正在学习核心音频 由于某种原因 处理图的声音仅通过弱 耳机 播放 当您将设备放在耳边时 而不是通过 iPhone 的常规扬声器播放 这是设置音频会话的代码 但我看不到它在哪里配置音频路由 void setupAudioSession AV
  • PivotTable.js 有条件地更改文本颜色

    所以我正在使用 PivotTable js 它对工作有很大帮助 但现在 我正在尝试获取一个过滤器来根据值更改单元格的颜色或单元格内的字体 例如 如果我的数据集中有一个日期数组 dates N A 4 12 2016 7 9 2024 7 9
  • Python 类输入参数

    我是面向对象编程的新手 我的想法是实现以下课程 class name object name def init self name print name 然后的想法是创建该类的两个实例 person1 name jean person2 n
  • JSF 国际化 f:loadbundle 或通过 faces-config:性能点

    有两种方法可以将属性文件加载到 JSF 2 0 中 全球资源包 全局加载属性文件 以便所有jsf页面都可以访问消息 您可以创建一个 faces config xml 文件并显式声明属性文件 面孔配置 xml
  • 使用java进行HTML解析[重复]

    这个问题在这里已经有答案了 可能的重复 可以解析 HTML 文档并构建 DOM 树 java https stackoverflow com questions 1433250 possible to parse a html docume
  • BufferedImage.getGraphics().drawImage() 改变像素值

    这是一个后续previous https stackoverflow com questions 23707736 strange bufferedimage behaviour with 4bits palette问题 标准推荐的改造方式
  • 基本 Flask:添加有用的功能

    我编写了一个在终端中运行的 python 脚本 并使用 Flask 将其移植到网络上 我已经完成了教程的部分内容 具体来说 http blog miguelgrinberg com post the flask mega tutorial
  • 更改 C# 中多行文本框的特定行

    我无法更改多行文本框的特定字符串 假设多行文本框的第一行是 Hello 第二行是 Bye 但是当我尝试更改第二行的值时 如下所示 textBox1 Lines 1 Good bye 当我使用调试模式看到结果时 它不是 再见 我也读过这个MS
  • 使用 React hooks 对数组进行排序

    我正在使用反应钩子对数组进行简单排序 但它不更新状态 谁能指出我要去这里做什么 import React useState from react import ReactDOM from react dom import styles cs
  • 如何在 Java 中使用 Jython Standalone 安装 Python 库?

    我正在尝试使用 Java 中的 Jython Standalone jar 安装 Python 库 我的代码似乎将 PIP 7 1 2 安装在独立 jar 旁边的文件夹中 但是一旦我尝试使用 PIP 进行自身升级 它就会失败并出现 ZipI
  • 本地放置文件的 jQuery .load() 的跨源问题

    我面临着一个非常基本的 jQuery 编码的恼人的跨源问题 我正在尝试调用 加载本地放置的test 1 html我的主 javascript 文件中的文件 load container load test 1 html function d
  • git add 错误:“致命:malloc,内存不足”

    当我尝试执行 git add 时 出现错误 致命 malloc 内存不足 我想系统显然已经耗尽了内存 但是有没有办法解决这个问题 我还运行 Windows Server 2003 并使用 msysGit 编辑 经过更多搜索后 我认为这是 g
  • 使用相同异常类作为参数的“ except”语句两次

    在Python中 我该如何使用except具有相同异常名称的块两次try except语句 无需将代码包装到另一个语句中try except block 简单的例子 这里each呼叫pages get可能会引发异常 try page pag
  • 是否有 Swift 代码的 Github markdown 语言标识符?

    我在用着https jbt github io markdown editor https jbt github io markdown editor在线文档工具 我想知道是否有一个标识符可以识别 swift 语法元素 谢谢 swift s
  • Map 和 ImmutableMap 的区别

    我在支付网关公司工作 在分析我遇到的代码时 ImmutableMap 对象 我想知道有关的所有细节 它是什么 与地图相比有什么优势 core java 支持 ImmuatbleMap 吗 ImmutableMaps是在Guava中引入的 它