嵌套 map 中的java迭代器(Map 2D)

标签 java dictionary iterator nested

我想知道:如何迭代 2D map ?我有一个中央 map :

private final Map<String, Map<String, String>> centralMap = 
    new HashMap<String, Map<String, String>>();

其中包含另一张 map :

Map<String,String> nestedMap = new HashMap<String, String>();

作为值,第二个是在“put”方法中创建的,因此在构造函数中,我只有centralMap。现在我想重新定义这个方法并获得 map 的完整条目(2个键和每个元素的值)

public Iterator<Entry> iterator()

我应该如何进行?如果可能的话,如何通过迭代器删除元素而不出现问题?

最佳答案

迭代器旨在对集合进行操作,例如第一个映射的键集或嵌套映射的值(它们是映射的集合)。您不能指望迭代器 renove 方法能够理解您的复杂结构。

我建议您为此构建自己的类,并使用自己的便捷方法来执行您所描述的操作。

此外,在这里冒险一下:确保您不仅仅想要一张多重 map 。如果是这样,请查看例如 guava's HashMultimap

关于嵌套 map 中的java迭代器(Map 2D),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10472656/

相关文章:

java - 使用另一个类的方法

java - 尝试从 Firebase 数据库中的子值获取 key

javascript - JavaScript 中的映射与对象

java - 用于替换 Java 中的列表成员的迭代器?

c++ - 将 stdlib 函数与索引一起使用而不是迭代器?

JAVA AES 256 和公钥加密

Java快速图像比较

Python - 扁平字典,其中一些键是 'missing'

c++ - 为什么 memcpy() 是一种向 `std::map` 添加元素的方法?

java - ResultSet 的 AutoCloseable Iterator 是否应该从终结器调用关闭?