当前位置: 首页 > 面试题库 >

如何从Java HashMap获取不可变的集合?

计阳泽
2023-03-14
问题内容

我需要从java
HashMap获取一个集合,而映射中的更改不会在以后的集合中反映出来。我想使用Collection.toArray()来实现这一点,但是它不起作用。结果产生的Object
[]也正在发生变化(javadocs说返回的数组将是“安全的”,因为此集合不维护对其的引用)。任何简单的方法来实现这一目标?


问题答案:

仅凭一个API调用就不可能做到这一点,您需要利用深度克隆。对原始文件进行更改时,克隆不会被更改。之前已经在SO上讨论了该主题,请参阅如何克隆ArrayList以及克隆其内容?和Deepclone实用程序推荐。



 类似资料:
  • 问题内容: 我指的是Apple的Swift编程指南,以了解如何用Swift语言创建可变/不可变对象(数组,字典,集合,数据)。但是我不明白如何在Swift中创建一个不可变的集合。 我希望在Objective-C中看到以下Swift中的等效项 不变数组 可变数组 不变字典 可变字典 问题答案: 创建不可变数组 第一种方式: 第二种方式: 创建可变数组 将对象追加到数组 辞典 创建不可变字典 创建可变

  • 问题内容: 从Java 1.6 Collection Framework文档中 : 不支持任何修改操作(如类别,和)被称为 不可修改的 。[…]额外保证Collection对象中的任何更改都将不可见的Collection被称为 不可变的 。 第二个标准使我有些困惑。鉴于第一个集合是不可修改的,并且假定原始集合引用已被删除,那么第二行中提到的更改是什么?它是指集合中包含的元素的变化,即元素的状态吗?

  • 我使用的是Vue.js和Firebase FiRecovery。现在我有两个集合和。在订单集合中,我已经存储了集合的每个文档的id。我现在必须从中获取相应用户的详细信息。我应该怎么做?这是我迄今为止所做的 我需要在userInfo中存储用户数据。提前谢谢

  • 问题内容: 我从ResultSet获取Date对象时遇到问题。在数据库中,它具有一个值(例如2014-08-01),并且从resultSet获取它之后,它具有另一个值(2014-08-31)。我知道ResultSet的getDate方法返回java.sql.Date,但是我尝试了一些解决方案,例如: 或 但问题是相同的。如果我尝试, 它将抛出NullPointerException。 有人可以解释

  • [Update]感谢Mark的回复,我在我们的开发环境中添加了上述变更集的版本。当我们的生产数据库是1.0的,我想直接升级到2.0(或3.0),但只想使用liquibase生成SQL命令并手动运行它。 回滚有一个问题,如果我回滚我的开发数据库,我需要重新创建已经在上面的数据。对此有什么建议吗?

  • 问题内容: 因此,其他公司的一些人认为,如果不使用soap或xml- rpc或rest或任何其他合理的通信协议,而只是将所有响应作为cookie嵌入到标头中,那将是很棒的。 我需要将这些cookie作为此curl响应中的一个数组拉出。如果我不得不花大量时间为此编写解析器,我将非常不高兴。 有谁知道如何简单地做到这一点,最好不要在文件中写入任何内容? 如果有人可以帮助我,我将不胜感激。 问题答案: