假设我在下面有一个每个类的对象,并将每个对象放在一个哈希图中,其中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));
}

09-12 03:59
查看更多