当前位置: 首页 > 知识库问答 >
问题:

获取HashMap中键的列表,该键具有类似“some value”的键

曹茂材
2023-03-14

在Mysql中,我们可以查询一个包含子句“WHERE name LIKE'%someName%'”的表,我们是否可以在Java中与HashMap具有相同的功能,如果可以,我们如何通过不迭代每个元素,在更短的时间内更有效地实现这一点?

共有1个答案

闾丘英悟
2023-03-14

您可以迭代所有键并检查它们是否匹配一个正则表达式。这可能不是最有效的方法,但这是我想到的第一件事。下面是它的样子:

Pattern p = Pattern.compile("*someName*"); // the regexp you want to match

List<String> matchingKeys = new ArrayList<>();
for (String key : map.keySet()) {
    if(p.matcher(key).matches()) {
        matchingKeys.add(key);
    }
}

// matchingKeys now contains the keys that match the regexp

注意:map应该在前面声明,如下所示:

HashMap<String, SomeValueClass> map = new HashMap<>();
 类似资料:
  • 问题内容: 考虑以下代码: 程序的输出为: 这里,键如何相互关联。是否所有三个都分配给相同的哈希码?如果是,为什么? 由于这三个值看起来都不同,因此一个值的更改会更改另一个值。这是否意味着只将一个密钥项输入 到任一密钥中,因为所有密钥项都被视为相同的密钥。 问题答案: 当将 null 作为键传递并且null作为特殊情况处理时,不会调用哈希码。 放置方法 将 null 键放在存储区 0中, 并将 n

  • 问题内容: 我已经将GSON作为Java中的JSON解析器,但是键并不总是相同的。 例如。我有以下JSON: {“我已经知道的对象”:{ “ key1”:“ value1”, “ key2”:“ value2”, “ AnotherObject”:{“ anotherKey1”:“ anotherValue1”,“ anotherKey2”:“ anotherValue2”} } 我已经有了JSO

  • 我在Java中使用了GSON作为JSON解析器,但密钥并不总是相同的<例如。我有以下JSON: {“我已经知道的对象”:{br>“key1”:“value1”, “key2”:“value2”, “AnotherObject”:{“anotherKey1”:“anotherValue1”,“anotherKey2”:“anotherValue2”} } 我已经得到了JSONObject“我已经知道

  • 我有一个HashMap(字符串,对象)。键是多个唯一ID的组合。我有一个输入,一个字符串是键的一部分(1个唯一ID)。我需要使用键的这一部分在HashMap中获取值,而无需在HashMap中迭代数千个值。 我们可以使用HashMap.get()中的任何正则表达式实现它吗? 我的钥匙是xxx。yyy年。zzz,其中xxx的组合。zzz在整个地图上都是独一无二的。我有xxx和zzz作为输入。此外,我还

  • 问题内容: 我在Javascript中有一个关联数组: 我如何获得这本字典的钥匙?即我想要 七年后的编辑:为了使术语正确-在Javascript中没有“关联数组”之类的东西-从技术上讲,这只是一个并且是我们想要的对象键。 问题答案: 您可以使用: 例: 请参阅下面的参考以获取浏览器支持。Firefox4.20,Chrome5,IE9支持该功能。如果浏览器不支持,则下面的链接包含一个代码片段,您可以

  • 我有一个映射“m”和一个列表“l”,现在我想从那个映射“m”中获取值,使用“l”中可用的键列表。我想用Java 8流的概念,任何人都可以在这方面提供帮助。 我编码打印这些值,但我需要的是将值放入列表中 list.stream().foreach(s->{system.out.println(map.get(s));});