解决方案 »

  1.   


        public static void main(String[] args) {
            Map<String, Integer> map1 = new LinkedHashMap<String, Integer>();
            map1.put("a_1", 1);
            map1.put("a_2", 2);        Map<String, Integer> map2 = new LinkedHashMap<String, Integer>();
            map2.put("b_1", 1);
            map2.put("b_2", 2);
            map2.put("b_3", 3);        Map<String, Integer> map3 = new LinkedHashMap<String, Integer>();
            map3.put("c_1", 1);
            map3.put("c_2", 2);        List<Map<String, Integer>> list = new ArrayList<Map<String, Integer>>();
            list.add(map1);
            list.add(map2);
            list.add(map3);
            print(list, "", 0);
        }    public static void print(List<Map<String, Integer>> list, String pref, int i) {
            if (i == list.size()) {
                System.out.println(pref.substring(1));
            } else {
                for (Map.Entry<String, Integer> entry : list.get(i).entrySet()) {
                    print(list, pref + "-" + entry.getValue(), i + 1);
                }
            }
        }
      

  2.   

    import java.util.ArrayList;
    import java.util.LinkedHashMap;
    import java.util.List;
    import java.util.Map;public class Test
    {
    public static void print(List<Map<String, Integer>> list, String pref, int i,List<String> res)
    {
    if (i == list.size())
    {
    res.add(pref.substring(1));
    }
    else
    {
    for (Map.Entry<String, Integer> entry : list.get(i).entrySet())
    {
    print(list, pref + "-" + entry.getValue(), i + 1,res);
    }
    }
    } public static void main(String[] args)
    {
    Map<String, Integer> map1 = new LinkedHashMap<String, Integer>();
    map1.put("a_1", 1);
    map1.put("a_2", 2); Map<String, Integer> map2 = new LinkedHashMap<String, Integer>();
    map2.put("b_1", 1);
    map2.put("b_2", 2);
    map2.put("b_3", 3); Map<String, Integer> map3 = new LinkedHashMap<String, Integer>();
    map3.put("c_1", 1);
    map3.put("c_2", 2); List<Map<String, Integer>> list = new ArrayList<Map<String, Integer>>();
    list.add(map1);
    list.add(map2);
    list.add(map3);

    List<String> res = new ArrayList<String>();
    print(list, "", 0,res);

    for(String s : res)
    {
    System.out.println(s);
    }
    }
    }
      

  3.   


    public class Test
    {
    public static void main(String[] args)
    {
    Map<String,Integer> map1 = new LinkedHashMap<String,Integer>();
    map1.put("a_1",1);
    map1.put("a_2",2);

    Map<String,Integer> map2 = new LinkedHashMap<String,Integer>();
    map2.put("b_1",1);
    map2.put("b_2",2);
    map2.put("b_3",3);

    Map<String,Integer> map3 = new LinkedHashMap<String,Integer>();
    map3.put("c_1",1);
    map3.put("c_2",2);

    List<Map<String,Integer>> list = new ArrayList<Map<String,Integer>>();
    list.add(map1);
    list.add(map2);
    list.add(map3);
    aaa(list,0,"");
    }
    //
    public static void aaa(List<Map<String,Integer>> list,int i,String line){
    Map<String,Integer> map = list.get(i);
    ArrayList<String> list1 = new ArrayList<String>(map.keySet());
    if(i<list.size()-1){
    for(int j=0;j<list1.size();j++){
    String line1 = line;
    int k = i+1;
    line1 += map.get(list1.get(j));
    aaa(list,k,line1);
    }
    }else{
    for(int j=0;j<list1.size();j++){
    System.out.println(line+map.get(list1.get(j)));
    }
    return;
    }
    }
    }