我遇到了一个更难的问题:我想迭代一个Hashmap,但是使用其他每个键而不是当前键。
一段代码:
for(String gkey: training_tables.keySet()){
int i=0;
int notInConformation=0;
int inConformation=0;
for(String akey: training_tables.get(gkey).keySet()){
inConformation=inConformation+training_tables.get(gkey).get(akey)[i];
for(String gxkey: training_tables.keySet()){
if(!gxkey.equals(gkey)){
notInConformation+=training_tables.get(gxkey).get(akey)[i]; //OTHER keys; but not the current.
}
}
}
i++;
}
它是一个包含Hash的Hash,包含一个Integer数组;
//private final HashMap<String, HashMap<String, Integer[]>> training_tables;
我正在寻找一种方法来返回其他键;但是当前的一个在外部for循环中运行。
Annyways,经过一番思考后,我自己解决了这个问题。我仍然会在这里发布,因为有些人可能想知道;) 上面的代码显示了解决方案。
答案 0 :(得分:0)
从Java 8开始使用流:
training_tables.keySet().stream().filter(e -> e != currentKey).collect(Collectors.asList());
返回所有键,但将当前键作为列表