【问题标题】:Use Hashmap to check if a string is present使用 Hashmap 检查字符串是否存在
【发布时间】:2013-06-13 16:17:54
【问题描述】:

对于新手的问题很抱歉,但我以前从未使用过 Hashmaps,所以我有点困惑

我试图根据我在这里看到的帖子做这样的事情

我不完全了解值的含义(值的默认类型是 int 吗?),所以我不知道该怎么办?我可以只保留 0 或 1 值或布尔值或其他东西。我可以设置 value3=True 或 value3=1 吗? 如果我使用 map.get 是不是得到了价值? (想必) 因此,如果我使用 0/1,我想检查是否 (value3!=1)? 谢谢!

HashMap map = new HashMap();
Object value3 = map.get("something_${blablabla}");

    if (value3 == null) {

        value3 = createValue("something_${row[blablabla]}");
        map.put("something_${row[blablabla]}", value3);

【问题讨论】:

  • 你想要一个哈希set
  • 所以我应该使用包含和添加?
  • Set 有 add() 方法,该方法返回 true 或 false。请参阅下面的答案。
  • 在将 Groovy 模板化字符串添加到集合/映射时要小心。见red box on this page

标签: java groovy hashmap key


【解决方案1】:

如果您真的想针对您的键存储任何有意义的值,那么您应该使用 HashMap。但是,如果您只想存储唯一键而不关心值,那么您应该使用 HashSet。它将存储唯一的密钥。并且它的 add() 方法会根据值是否已经存在返回 true 或 false。

【讨论】:

  • 我明白了,所以有点像.. HashSet itemset = new HashSet(); boolean present = itemset.add("something_${blablabla}"); if (present == false) { (item is not present) do blank blank
  • 是的。这正是我的意思。
【解决方案2】:

将地图视为字典:您有一个词(键)和一个描述/翻译(值)。因此,如果您正在寻找一个特定的值,您只需执行 map.get(key) 并获取一个值。

但是如果你只是想知道一个key是否存在,而value并不重要,你应该使用Set,而不是Map

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2018-08-07
    • 2019-04-07
    • 2023-03-14
    • 2020-04-10
    • 2011-04-10
    • 2020-07-30
    • 1970-01-01
    相关资源
    最近更新 更多