2017-03-02 20 views
-1

我遇到了一个更难的问题:我想遍历Hashmap,但使用每一个其他的键,但使用当前的键。代码的Java HashMap - 在Hash上迭代并获取当前的所有密钥

件:

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++; 
    } 

它是包含含有一个整数数组哈希散列;

//private final HashMap<String, HashMap<String, Integer[]>> training_tables; 

我在找一个方法来返回其他键;但当前在外部for循环中运行。

Annyways,经过一番思考,我自己解决了这个问题。我仍然会在这里发帖,因为有些人可能想知道;) 上面的代码显示了解决方案。

+1

欢迎SO。解决方案应作为答案发布,而不是问题本身。 – m0skit0

+0

谢谢,我可以改变它吗? –

+0

我想你可以在下面回答自己。 – m0skit0

回答

0

如Java 8中使用流:

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

返回所有密钥,但目前的一个作为列表

+1

非常感谢,身份证没有想到那个:) –