字典如何递归读取java映射
我有如下的Java地图。我想读取所有的值,其中键可以是其他键的值。在这里,我试图写一些反响的方法来阅读它,但没有运气。如果有人有经验,请向我解释
Map map= new HashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
map.put("1", "4");
map.put("4", "5");
在上面的映射中,如果我将"a"
作为键传递,我需要与1,4,5
对应的所有值
# 1 楼答案
假设没有任何循环:
# 2 楼答案
您可以通过从一个键开始并返回方法调用及其值来递归地导航映射
输出
请记住,方法签名应该是
<K, K>
或<K>
,但我在上面使用了<K, V>
来表示键、值关系在地图上行走
更新:您可以创建一个访问者类来评估地图键/值
# 3 楼答案
为了防止
Java.lang.StackOverflowError
,如果在映射中发生循环,您可以检查该值是否已经存在,并将continer(这里是Set
)提供给该方法,而不让该方法自己创建它