我正在考虑在Java中查找成员ID的方法。但我首先需要知道是否可以将这些ID存储在组中。
问题是我想要成员ID = FirstName,LastName;
如何将这些存储在一起?
ID是一个整数,但名称将是一个字符串。
如果查找会员ID> 433 ||我想输出>史密斯,约翰
我也希望能够搜索名称Smith并获得> 433,史密斯,约翰
如何创建一个变量来存储它们,以便它们像这样链接在一起?
我不知道这叫什么,否则我会自己查一下。有谁知道我可以在哪里开始研究这个?
答案 0 :(得分:4)
我猜你正在寻找像BiMap这样的东西。
它基本上是HashMap,它将key
映射到value
和value
映射到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