当前位置: 首页 > 面试题库 >

Java中的双向地图?

燕和同
2023-03-14
问题内容

我在Java中有一个简单的整数到字符串映射,但是我需要能够轻松地从整数中检索字符串,以及从字符串中检索整数。我尝试过Map,但是它只能从整数中检索字符串,这是一种方法:

private static final Map<Integer, String> myMap = new HashMap<Integer, String>();
// This works one way:
String myString = myMap.get(myInteger);

// I would need something like:
Integer myInteger = myMap.getKey(myString);

有正确的方法来做到双向吗?

另一个问题是,我只有几个不变的常量值(1->"low", 2->"mid", 3->"high",所以采用复杂的解决方案就不值得了。


问题答案:

您可以为此使用Google Collections API, 最近将其
重命名为Guava,特别是BiMap

双向映射(或“双向映射”)是一种保留其值以及其键的唯一性的映射。此约束使bimap可以支持“反向视图”,这是另一个bimap,它包含与此bimap相同的条目,但具有相反的键和值。



 类似资料:
  • 问题内容: 我正在寻找一种存储键值对的方法。我需要双向查询,但同时我需要为同一个键存储多个值。换句话说,类似于BidiMap,但是对于每个键,可以有多个值。例如,它需要能够保存以下对:“ s1”-> 1,“ s2”-> 1,“ s3”-> 2,并且我需要能够将值映射到每个键,并且对于每个值,获取与其关联的所有键。 问题答案: 因此,你需要多对多关系的支持吗?你可以得到的最接近的是Guava,Mul

  • 我有一个包含通配符的8个字符长的字符串列表(由表示),我需要将这些字符串与同样具有通配符的输入字符串匹配。所述字符串由四个字母字符(A-Z)和四个数字(0-9)组成。为了更容易理解,下面是一组字符串的示例: 如果我给作为输入,那么每次比较都应该解析为true。 此处理发生在线程内部,外部交互可以更改输入将检查的字符串列表(仅添加或删除)。

  • 问题内容: 我的应用程序(显然)使用唯一的ID来区分记录。除其他外,此UID在URL(例如)中传递。 虽然我显然已经在服务器端进行了验证,以确保客户端不会访问其他客户端的数据,但是我可以在PHP中使用一种双向加密方法来仅传递加密的UID(例如),以进一步减少机会有人认为“嘿,如果我增加这个整数会怎样?” TIA。 问题答案: 我认为,在ID旁边放置一个散列以确保其安全性,或者用多余的数据填充ID,

  • 在这种情况下,优雅地关闭WebSocket的正确方法是什么?

  • 问题内容: 我们的应用程序使用无限滚动来浏览大量异构项目列表。有一些皱纹: 对于我们的用户来说,通常有10,000个项目的列表,并且需要滚动3k +。 这些都是丰富的项目,因此在浏览器性能变得无法接受之前,我们只能在DOM中拥有几百个。 这些物品的高度各不相同。 这些项目可能包含图像,我们允许用户跳转到特定日期。这很棘手,因为用户可以跳到列表中需要在视口上方加载图像的位置,这会在加载时将内容下推。

  • 我是java的初学者。我试图编写一个程序,在给定的位置插入一个节点,并显示整个链表。然而,我的节点似乎没有被插入,当我显示链表时,只显示第一个节点值。有人能解释一下我哪里出错了吗? //这里,位置是索引位置。索引从0开始,以大小-1结束,就像数组一样。 //插入代码 //遍历代码 //主要方法 输出: