【问题标题】:How to find the difference in a Map between two Strings based on their integer values?如何根据整数值找到两个字符串之间的映射差异?
【发布时间】:2013-11-22 03:02:07
【问题描述】:

我的问题是我如何遍历这个 Map 并根据它们的整数值找到一些两个字符串之间的差异。我知道我的 for 循环中某处需要一个“i”,但我不知道如何实现它。

float getDifference(Map<String, Integer> qualities)
 {
    String myQuality = "";
    String yourQuality = "";
    float answer = 0;
    for(int i = 0; i<qualities.size(); i++)
       {
         answer = qualities.get(myQuality) - qualities.get(yourQuality);
         }
    }

【问题讨论】:

  • 你想做什么?
  • 为什么需要 for 循环,即使你这样做答案 = quality.get(myQuality) - quality.get(yourQuality);你会得到答案的。
  • 我正在循环遍历具有某些整数值的质量图。我的品质不会改变,但“你”有多种品质,我需要循环并找到每个“你的”品质与我的品质之间的距离。这就是为什么我有地图。我不应该初始化 String myQuality 和 yourQuality 吗?

标签: java loops map difference


【解决方案1】:

这样做不需要循环:

qualities.get(myQuality) - qualities.get(yourQuality)

【讨论】:

    【解决方案2】:

    仍然不是 100% 清楚你想要做什么,但这里是如何遍历哈希映射:

    float getDifference(Map<String, Integer> qualities)
    {
        String myQuality = "";
        float answer = 0;
        for(Entry<String, Integer> quality : qualities.entrySet())
        {
             answer += qualities.get(myQuality) - quality.getValue();
        }
        return answer;
    }
    

    给我们更多信息(具体示例),我们可以为您提供更多帮助。

    【讨论】:

      【解决方案3】:

      如果要找出两个字符串的映射值之间的差异,可以执行以下操作。

      float getDifference(Map<String, Integer> qualities, String str1, String str2)
      {
        Integer int1 = qualities.get(str1);
        Integer int2 = qualities.get(str2);
        if(int1 != null && int2 != null)
          return int1.intValue() - int2.intValue();
      
        return -9999;
      }
      

      说明

      HashMap 存储键值对。整个地图中的钥匙都是独一无二的。我们可以使用 map.get(key) 来获取该键对应的值。

      HashMap 只能存储对象,所以我们可以存储 Integer 类的对象。使用 put() 时,编译器会自动将 int 转换为 Integer。但是在取回值时,我们应该检查 null。

      保留 -9999 或某个值,它可以告诉您您的第一个字符串或第二个字符串不作为键出现在地图中

      【讨论】:

        【解决方案4】:

        如果您知道myQualityyourQuality 的值,则不需要循环。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-10-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多