【问题标题】:Using HashMap as Collection in Java在 Java 中使用 HashMap 作为集合
【发布时间】:2011-12-10 12:06:52
【问题描述】:

JAXB 不允许您将现有的 xml 结构解组到 HashMaps,如果它们与 JAXB 所期望的方式不完全相同。

JAXB 可以很好地处理例如LinkedLists 并填写它们。

我正在考虑使用getKey() 方法和围绕HashMap 的包装器创建一个接口,以获取实现该接口的所有对象。然后包装器可以对地图的所有关键相关特征使用getKey() 方法。然后包装器可以轻松实现CollectionList 接口。

因为这个想法对我来说似乎没有创新,我认为它已经存在于某个包中,但我没有正确搜索它......有人可以命名一个可以做到这一点的好库,或者做我必须自己编写代码?

【问题讨论】:

标签: java collections jaxb hashmap guava


【解决方案1】:

您可以考虑扩展ForwardingList 的番石榴,并在后面使用 HashMap。我不知道有什么实现只会让你得到实际的映射。
另一种选择是创建 JAXB XmlAdapter 以使值适应您的地图。我觉得这个比较合适。

【讨论】:

【解决方案2】:

如果您试图将Map 的信息内容作为Collection 传递,请使用Map.entrySet()。这给了你一个Set<Map.EntrySet<K,V>> 对象;即一个集合,其元素是Map 的键/值对。要从集合中重建 Map,您需要迭代集合并为每个元素执行 put

【讨论】:

  • 谢谢,不,我想向地图添加内容。但我不想先将内容保存在列表中,然后再将其复制到地图中,仅仅因为 JAXB
猜你喜欢
  • 2015-12-20
  • 2014-09-17
  • 2012-12-24
  • 2017-06-30
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 2015-04-10
  • 1970-01-01
相关资源
最近更新 更多