是否有可能将多个部分链接到一个变量(433,约翰,史密斯)(236,凯文,史密斯)?

时间:2011-06-18 14:50:41

标签: java variables

我正在考虑在Java中查找成员ID的方法。但我首先需要知道是否可以将这些ID存储在组中。

问题是我想要成员ID = FirstName,LastName;

如何将这些存储在一起?

ID是一个整数,但名称将是一个字符串。

如果查找会员ID> 433 ||我想输出>史密斯,约翰

我也希望能够搜索名称Smith并获得> 433,史密斯,约翰

如何创建一个变量来存储它们,以便它们像这样链接在一起?

我不知道这叫什么,否则我会自己查一下。有谁知道我可以在哪里开始研究这个?

3 个答案:

答案 0 :(得分:4)

你正在寻找像BiMap这样的东西。 它基本上是HashMap,它将key映射到valuevalue映射到key。 以下是标准地图的示例(仅适用于一个方向):

HashMap<Integer, String> yourMap = new HashMap<Integer, String>()
yourMap.put(433, "FirstName,LastName"); // associate key "433" with "FirstName,LastName"
System.out.println(yourMap.get(433)); // will print "FirstName,LastName"

答案 1 :(得分:1)

您希望将相关值分组到以下类中:

public class Person {
    private final int id;
    private final String firstName;
    private final String lastName;

    public Person(int id, String firstName, String lastName) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public int getId() {
        return id;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    @Override
    public String toString() {
        return String.valueOf(id) + ", " + firstName + ", " + lastName;
    }
}

然后,使用地图搜索您的值:

public static void main(String[] args) {
    Map<Integer, Person> persons = new HashMap<Integer, Person>();
    persons.put(433, new Person(433, "John", "Smith");
    System.out.println(persons.get(433).toString());
    // The output for this is 433, John, Smith
}

答案 2 :(得分:0)

使用Map并将Map.Entry<String,String>作为值。

Map<Integer,Map.Entry<String,String>> members = new HashMap<Integer,Map.Entry<String,String>>();

members.put(123, new AbstractMap.SimpleEntry<String,String>("John", "Doe"));

members.get(123).getKey(); //returns John
members.get(123).getValue(); //returns Doe