Java Hashmap - 迭代哈希并获取除当前密钥之外的所有密钥

时间:2017-03-02 10:44:33

标签: java hash hashmap

我遇到了一个更难的问题:我想迭代一个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,经过一番思考后,我自己解决了这个问题。我仍然会在这里发布,因为有些人可能想知道;) 上面的代码显示了解决方案。

1 个答案:

答案 0 :(得分:0)

从Java 8开始使用流:

training_tables.keySet().stream().filter(e -> e != currentKey).collect(Collectors.asList());

返回所有键,但将当前键作为列表