例如
java.util.Map president1 = new java.util.HashMap(); 
president1.put("200801", "as"); 
president1.put("200802", "as12"); 
president1.put("200803", "as3123"); 
president1.put("200804", "as342"); java.util.Map president2 = new java.util.HashMap(); 
president2.put("200801", "as2"); 
president2.put("200802", "as1234"); 
president2.put("200803", "as312323"); 
president2.put("200804", "as3fd42"); java.util.Map president3 = new java.util.HashMap(); 
president3.put("200801", "as3"); 
president3.put("200802", "as1sdf234"); 
president3.put("200803", "as3df12323"); 
president3.put("200804", "as3fsdfd42"); 合并成  ("200801", "as","as2","as3"); 
将 president1 ,president2 ,president3 合并成一个数组怎么做 请告诉我谢谢

解决方案 »

  1.   

    for exampleMap tmp = new java.util.HashMap();
    Iterator it = president1.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry entry = (Map.Entry)it.next();
        List l = tmp.get(entry.getKey());
        if (l == null) {
            l = new ArrayList();
        }
        l.add(entry.getValue());
        tmp.put(entry.getKey(), l);
    }it = president2.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry entry = (Map.Entry)it.next();
        List l = tmp.get(entry.getKey());
        if (l == null) {
            l = new ArrayList();
            l.add(null);
        }
        l.add(entry.getValue());
        tmp.put(entry.getKey(), l);
    }it = president3.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry entry = (Map.Entry)it.next();
        List l = tmp.get(entry.getKey());
        if (l == null) {
            l = new ArrayList();
            l.add(null);
            l.add(null);
        }
        l.add(entry.getValue());
        tmp.put(entry.getKey(), l);
    }String[][] result = new String[tmp.size()][4];
    it = tmp.entrySet().iterator();
    int index = 0;
    while (it.hasNext()) {
        Map.Entry entry = (Map.Entry)it.next();
        result[index][0] = (String)entry.getKey();
        List l = (List)entry.getValue();
        result[index][1] = (String)l.get(0);
        result[index][2] = (String)l.get(1);
        result[index][3] = (String)l.get(2);
        index++;
    }for (int i=0; i<result.length; i++) {
        for (int j=0; j<result[i].length-1; j++) {
            System.out.print(result[i][j]+",");
        }
        System.out.println(result[i][result[i].length-1]);
    }
      

  2.   

    我不是很明白你的意思,是不是不让"200801"作为键,后面的三个作为值,类似map的形式存下来?
    如果这样的话,java本身不提供这样的实现吧,不过可以自己写个类,里面包含四个属性,第一个作为键,后面三个作为值,然后把它们存在一个list里,
    或者按照二维数组的形式存,不过要使用的时候,自己的按照键值对的形式解析数组。
      

  3.   

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;public class Test {    public static void main(String[] args) {
            Map<String, String> president1 = new HashMap<String, String>();
            president1.put("200801", "as");
            president1.put("200802", "as12");
            president1.put("200803", "as3123");
            president1.put("200804", "as342");
            Map<String, String> president2 = new HashMap<String, String>();
            president2.put("200801", "as2");
            president2.put("200802", "as1234");
            president2.put("200803", "as312323");
            president2.put("200804", "as3fd42");
            Map<String, String> president3 = new HashMap<String, String>();
            president3.put("200801", "as3");
            president3.put("200802", "as1sdf234");
            president3.put("200803", "as3df12323");
            president3.put("200804", "as3fsdfd42");
            
            List<String[]> list = new ArrayList<String[]>();
            for(Map.Entry<String, String> entry : president1.entrySet()) {
                String[] str = new String[4];
                str[0] = entry.getKey();
                str[1] = president1.get(str[0]);
                str[2] = president2.get(str[0]);
                str[3] = president3.get(str[0]);
                list.add(str);
            }
            
            for(String[] s : list) {
                System.out.println(Arrays.toString(s));
            }        
        }
    }
      

  4.   

    重新改进了一下:import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;public class Test {    public static void main(String[] args) {               
            Map<String, String> president1 = new HashMap<String, String>();
            president1.put("200801", "as");
            president1.put("200802", "as12");
            president1.put("200803", "as3123");
            president1.put("200804", "as342");
            
            Map<String, String> president2 = new HashMap<String, String>();
            president2.put("200801", "as2");
            president2.put("200802", "as1234");
            president2.put("200803", "as312323");
            president2.put("200804", "as3fd42");
            
            Map<String, String> president3 = new HashMap<String, String>();
            president3.put("200801", "as3");
            president3.put("200802", "as1sdf234");
            president3.put("200803", "as3df12323");
            president3.put("200804", "as3fsdfd42");        
            
            // 增加部分
            List<Map<String, String>> mapList = new ArrayList<Map<String, String>>();
            mapList.add(president1);
            mapList.add(president2);
            mapList.add(president3);
            // end
            
            List<String[]> list = new ArrayList<String[]>();
            for(Map.Entry<String, String> entry : president1.entrySet()) {
                String[] str = new String[mapList.size() + 1];
                str[0] = entry.getKey();
                int i = 1;
                for(Map<String, String> president : mapList) {
                    str[i++] = president.get(str[0]);
                }            
                list.add(str);
            }
            
            for(String[] s : list) {
                System.out.println(Arrays.toString(s));
            }        
        }
    }