我创建了一个类别<代码>。 Foo, 方法to Array()
, 返回代码
现在,我有一份哈希姆普地图,向哈希姆普绘制地图,标出 Objects。 也就是说:
HashMap<String,HashMap<Object,Foo>>
我也想制造一个新型物体:
HashMap<String,HashMap<Object,Array<Int>>>
之所以能够做到这一点,是把原HashimMAp中的每一元素Foo的功能称作Array()。
我通常会这样做:
public static HashMap<String,HashMap<Object,Array<Int>>> changeMap(Map mpOld) {
Object key2;
String key1;
Iterator it2;
HashMap<String,HashMap<Object,Array<Int>>> mpNew=
new HashMap<String,HashMap<Object,Array<Int>>>()
Iterator it1 = mpOld.keySet().iterator();
while (it1.hasNext()) {
key1=it1.next();
it2= mpOld.get(key1).keySet().iterator();
mpNew.put(key1,new HashMap<Object,Array<Int>>())
while (it2.hasNext()) {
key2=it2.next();
mpNew.get(key1).put(key2,mpOld.get(key1).get(key2).toArray());
//TODO clear entry mpOld.get(key1).get(key2)
}
//TODO clear entry mpOld.get(key1)
}
return mpNew;
}
一部类似的法典只奏效,但哈希马普的Size太大,不能让其中两人记住。 你可以看到,我增加了两点,我想澄清一些条目。 问题在于,如果我这样做的话,我要么会遇到一个不一致的错误,要么是使者只是终止了。
我不禁要问,通过地图和复制信息有好办法。
此外,我还在Schala项目中工作,但我在此不得不使用Java的类型处理一些兼容性问题。 虽然Java.util.HashMap
不是导师,但可能有些隐蔽的不连续处理此事?
感谢