【问题标题】:Query from HashMaps [closed]来自 HashMaps 的查询 [关闭]
【发布时间】:2012-03-14 17:25:25
【问题描述】:

我需要从多维HashMap的Inner HashMap中查询一个整数值(AtomicInteger)。我需要知道 LocalStore 有哪些游戏副本有存货。我有单独的 inStock HashMap...这是PasteBin上的代码...

我需要有关如何继续的帮助!

【问题讨论】:

  • 完整类文件请访问pastebin.com/16WrZmYw
  • 我的文件是这样的: 刺客信条 [商店 3] 特拉华州 15 刺客信条 [商店 4] 曼彻斯特 23 刺客信条 [商店 5] 奥萨苏纳 10 FIFA09 [商店 1] 阿德莱德 0 FIFA09 [商店2] 巴塞罗那 3 国际足联 [3 号店] 特拉华州 0 国际足联 [4 号店] 曼彻斯特 7 国际足联 [5 号店] 奥萨苏纳 12

标签: java algorithm hashmap


【解决方案1】:

一个简单的解决方案是遍历inStock 映射。如果您没有成百上千的商店,那么性能会很好。

public static List<LocalStore> checkInStock(String gameTitle) {
   return checkInStock(new Game(gameTitle));
}

public static List<LocalStore> checkInStock(Game g) {
    List<LocalStores> stores = new ArrayList<LocalStores>();
    for (Map.Entry<LocalStore, HashMap<Game, AtomicInteger>> entry : inStock.entrySet()) {
      HashMap<Game, AtomicInteger> tmp = entry.getValue();
      AtomicInteger anInt = tmp.get(g);
      if (anInt != null && anInt.get() > 0) {
        stores.add(entry.getKey());
      }
    }
    return stores;
}

【讨论】:

  • 谢谢马丁。记住'inStock' HashMap 的值应该是内部的HashMap。你的意思是它只是两个HashMaps的一个值?这样我就很困惑。请详细说明。谢谢
  • 你是对的。不想让你感到困惑——我在这里迷路了。更新了代码。更好?
  • 所以我应该有类似...'static void checkStock(Games g)'作为参数并且第一行代码可以去吗?并使第四行'AtomicInteger'而不是'Integer'
  • 是的。我更新了我的答案并添加了一种方法来按游戏标题作为字符串进行搜索。是的,它是 AtomicInteger :) 。 . .不是我的日子
  • 我现在使用 Integer 而不是 AtomicInteger,我得到了它。谢谢。你是最棒的!请评价我的研究成果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
相关资源
最近更新 更多