举例,两个Map结构如下
Map mapResult1 =new HashMap();
Map mapResult2 =new HashMap();
Vector vec1 = new Vector();
Vector vec11 = new Vector();
Vector vec2 = new Vector();
Vector vec22 = new Vector();
vec1.add("1");
vec1.add("2");
vec1.add("4");
vec11.add("10");
vec11.add("30");
vec11.add("50");
vec2.add("3");
vec2.add("4");
vec2.add("5");
vec2.add("6");
vec22.add("60");
vec22.add("70");
vec22.add("80");
vec22.add("90");
mapResult1.put("index", vec1);
mapResult1.put("value", vec11);
mapResult2.put("index", vec2);
mapResult2.put("value", vec22);
现在要根据mapResult2与mapResult1中index的对应关系调整mapResult1.
需要的到的Map结果如下:key为index的Vector的结构[3,4,5,6];对应key为value的Vector的结构[60,50,80,90]也就是说如果mapResult1中index在mapResult2有的,保留原有的值。如果没有就加上,如果多余,就去掉。一切以mapResult2的index为准。
Map mapResult1 =new HashMap();
Map mapResult2 =new HashMap();
Vector vec1 = new Vector();
Vector vec11 = new Vector();
Vector vec2 = new Vector();
Vector vec22 = new Vector();
vec1.add("1");
vec1.add("2");
vec1.add("4");
vec11.add("10");
vec11.add("30");
vec11.add("50");
vec2.add("3");
vec2.add("4");
vec2.add("5");
vec2.add("6");
vec22.add("60");
vec22.add("70");
vec22.add("80");
vec22.add("90");
mapResult1.put("index", vec1);
mapResult1.put("value", vec11);
mapResult2.put("index", vec2);
mapResult2.put("value", vec22);
现在要根据mapResult2与mapResult1中index的对应关系调整mapResult1.
需要的到的Map结果如下:key为index的Vector的结构[3,4,5,6];对应key为value的Vector的结构[60,50,80,90]也就是说如果mapResult1中index在mapResult2有的,保留原有的值。如果没有就加上,如果多余,就去掉。一切以mapResult2的index为准。
解决方案 »
- URI URL URN
- java中如何是JTextArea组件的大小随窗口的增大,而改变
- 如何能让多个对象(同一个类的)存入一个File文件中,读写无误.
- 【救命】
- 分不多,没有可用分了,,ECLIPSE中为什么不可以指定新建的类继承自某一个类,我的只有一个object,,怎么回事?
- 我的第一个java程序发问,请指点!
- 为什么我从MAP里读出来的KEY的顺序变了?
- 关于IDE的一段话,让人:(
- 关于JAVA中传递的参数。20分~~~~~
- springframework StringUtils和apache StringUtils的区别
- 函数内部类如何访问函数里的变量
- java桌面应用用,如何选择当前windows中的多个连接中的一个?
Vector vec1 = (Vector)map1.get(index);
Vector vec2 = (Vector)map2.get(index);
Iterator itLast = map1.entrySet().iterator();
Iterator itThis = map2.entrySet().iterator(); while (itThis.hasNext()) {
Map.Entry entryThis = (Map.Entry) itThis.next();
while (itLast.hasNext()) {
Map.Entry entryLast = (Map.Entry) itLast.next();
Vector vecOth = (Vector) entryLast.getValue();
Vector vecThis = (Vector) entryThis.getValue();
if (entryThis.getKey().equals(entryLast.getKey())) {
for (int i = 0; i < vec2.size(); i++) {
if (vec1.contains(vec2.get(i))) {
vecThis.set(i, vecOth.get(vec1.indexOf(vec2.get(i))));
}
}
entryThis.setValue(vecThis);
break;
}
}
}
return map2;
} /**
* Added by liyuanping at 2008-7-14
*
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Map mapResult1 =new HashMap();
Map mapResult2 =new HashMap();
Vector vec1 = new Vector();
Vector vec11 = new Vector();
Vector vec2 = new Vector();
Vector vec22 = new Vector();
vec1.add("port1");
vec1.add("port2");
vec11.add("aa");
vec11.add("bb");
vec2.add("port1");
vec2.add("port4");
vec2.add("port5");
vec2.add("port2");
vec22.add("cc");
vec22.add("dd");
vec22.add("ee");
vec22.add("ee");
mapResult1.put("index", vec1);
mapResult1.put("value", vec11);
mapResult2.put("index", vec2);
mapResult2.put("value", vec22);
System.out.println(mapResult2);
System.out.println(mapResult1);
System.out.println(ajustMap(mapResult2,mapResult1,"index"));
}}
自己顶下。无聊的问题