2017-03-02 61 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

非常感謝,身份證沒有想到那個:) –