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

使用部分键获取HashMap的值

李敏学
2023-03-14

我有一个HashMap(字符串,对象)。键是多个唯一ID的组合。我有一个输入,一个字符串是键的一部分(1个唯一ID)。我需要使用键的这一部分在HashMap中获取值,而无需在HashMap中迭代数千个值。

我们可以使用HashMap.get()中的任何正则表达式实现它吗?

我的钥匙是xxx。yyy年。zzz,其中xxx的组合。zzz在整个地图上都是独一无二的。我有xxx和zzz作为输入。此外,我还有一组给定zzz的可能值yyy(5-6个可能性,也可能增加)。

我现在有两个选择来解决这个问题。

  1. 地图。输入以检查键是否分别以xxx和zzz开始和结束

我应该选择哪一个?

共有3个答案

冯皓
2023-03-14

如果你的键像xxx.yyy.zzz并且你想使用xxx.*类型访问,那么你可以考虑我的MapFilter类。

它允许您获取映射,并根据某个键前缀对其进行过滤。这将搜索特定前缀,并将搜索结果保留到以后。

凌通
2023-03-14

不,不可能将部分键与HashMap一起使用。

使用TreeMap,这可以通过所需键的部分前缀来实现,因为它允许您使用tailMap(字符串键)返回特定键(即您的keypart)后面的地图部分。您仍然需要处理这些条目,以查看哪些条目与部分键匹配。

邢烨烨
2023-03-14

HashMap中检索值而不迭代条目/键(您不想要)的唯一方法是搜索完整键。

如果您需要通过部分键进行有效搜索,那么应该考虑使用HashMap,其键就是该部分键。

 类似资料:
  • 下面是HashMap中包含的值 获取第一个键(即活动键)的Java代码 我们如何收集第一个键“值”(即33),我想把“键”和“值”都存储在单独的变量中。

  • 但是,在加载模板时,我得到了以下异常。 我不知道为什么要在键为时将其解析为。有什么方法可以让Thymeleaf将值解析为吗?

  • 问题内容: 我正在用Java写一个简单的编辑文本。当用户打开文件时,将在中打开文件。我执行以下操作来保存打开的文件: 将从何处接收值,例如:。 我有一堂课: 现在,在此类中,我需要获取存储在中的值。我怎样才能做到这一点? 问题答案: 要从地图获取所有值: 要从地图中获取所有条目,请执行以下操作: Java 8更新: 处理所有值: 要处理所有条目:

  • 初学者问题:我有一个hashmap,它将整数数组存储为值。每个值的键是一个由两个整数(坐标)组成的对象。 我的问题是:如何根据对象中的两个坐标(我的“键”)从hashmap检索值? 我的协和类(在Eclipse的一点帮助下): 构建Hashmap: 如果我想访问坐标12,13上的数组,如何检索它?是否需要迭代(我希望不是,我想添加100000个坐标,当然要快速访问)。 我希望这能在某种程度上符合

  • 我有一个活动使用“adjustPan”作为其调整大小配置,我需要在不使用“adjustResize”的情况下计算键盘高度,因为我需要将某些视图保留为全屏(这意味着它们应该保留在原位,键盘应该隐藏它们),并将视图放在键盘正上方。我们的应用程序有一个消息按钮,我通过按钮点击打开键盘。当它发生时,我使用OnGlobalLayoutListener并使用“getWindowVisibleDisplayFr

  • 我有一个数组列表作为