【问题标题】:Java Hashmap - Iterate over a Hash and get all keys but the current oneJava Hashmap - 遍历哈希并获取除当前键之外的所有键
【发布时间】:2017-03-02 10:44:32
【问题描述】:

我遇到了一个更困难的问题:我想迭代一个 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 包含一个包含 Integer Array 的 Hash;

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

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

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

【问题讨论】:

  • 欢迎来到 SO。解决方案应作为答案发布,而不是在问题本身中。
  • 谢谢,我还能改吗?
  • 我想你可以在下面回答自己。

标签: java hash hashmap


【解决方案1】:

从 java 8 开始使用流:

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

将除当前键之外的所有键作为列表返回

【讨论】:

  • 非常感谢,我没想到那个:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多