假设我在下面有一个每个类的对象,并将每个对象放在一个哈希图中,其中IDnumber是两个图中的键。
class1 {
int IDNumber = 123; //same person as class2
String name = John;
String company = Intel;
class2 {
int IDNumber = 123; //same person as class1
int income = 500;
int workYears = 3;
}
HashMap<Integer, class1> one = new Hashmap<Integer, class1>();
HashMap<Integer, class2> two = new HashMap<Integer, class2>();
现在,如何将这两个HashMap混搭到第三个HashMap中,以便可以拥有键ID号以及值名称,公司,收入和工作年限?
最佳答案
你不能这样做。您有两个不同的类,而Java不会自动神奇地使它们成为一个。
您可以创建一个新的第三类来合并信息:
public Class3 {
public Class3(Class1 class1, Class2 class2){
//pull the info you want from each into variables in this class
}
}
然后遍历您的地图以获取条目,为每个条目创建新的Class3实例,并将它们放置在新的
HashMap<Integer, Class3>
中。//gets the keys from the hashmap
Set<Integer> keys = one.keySet();
//merge the keys from the second hashmap
keys.addAll(two.keySet());
//new hashmap
Map<Integer, Class3> newMap = new HashMap<Integer, Class3>();
for (Integer key : keys){
//create new instance and place it in the map
newMap.put(key, new Class3(one.get(key), two.get(key));
}