我的数据是以"密钥"格式组织的,而不是"键值".它就像一个HashMap,但我需要在两个方向上进行O(1)查找.这种类型的数据结构是否有名称,Java标准库中是否包含这样的名称?(或者可能是Apache Commons?)
我可以编写自己的类,基本上使用两个镜像映射,但我宁愿不重新发明轮子(如果这已经存在但我只是没有找到合适的术语).
我在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);
Run Code Online (Sandbox Code Playgroud)
有没有正确的方法来实现这两个方向?
另一个问题是我只有一些不会改变的常数值(1->"low", 2->"mid", 3->"high"因此,找一个复杂的解决方案是不值得的.
我不确定如何使用get()来获取我的信息.看着我的书,他们把钥匙传给了get().我认为get()返回与该键相关联的对象查看文档.但我必须在这里做错事......有什么想法吗?
import java.util.*;
public class OrganizeThis
{
/**
Add a person to the organizer
@param p A person object
*/
public void add(Person p)
{
staff.put(p, p.getEmail());
System.out.println("Person " + p + "added");
}
/**
* Find the person stored in the organizer with the email address.
* Note, each person will have a unique email address.
*
* @param email The person email address you are looking for.
*
*/
public Person findByEmail(String email)
{
Person aPerson = staff.get(email); …Run Code Online (Sandbox Code Playgroud)