比如有三个独立的列表
ArrayList<String> arr1={我,你,他};
ArrayList<String> arr2={想,不想};
ArrayList<String> arr3={摸摸你,亲亲你,闻闻你};我的结果能出来的ArrayList<String> arrresult 数据有 3x2x3=18个,
就是在三个列表中,每一个都出来一个内容组合成一个新的内容,最后的值为:
arrresult.get[0] = 我想摸摸你;
arrresult.get[1] = 我不想摸摸你;
arrresult.get[2] = 我想亲亲你;
arrresult.get[3] = 我不想亲亲你;

arrresult.get[15] = 他不想闻闻你;出来的数据的排序顺序不要紧,只要出来这15个组合结果就OK了。

解决方案 »

  1.   


    import java.util.ArrayList;public class NewClass {    static ArrayList<String> array0 = new ArrayList<String>();
        static ArrayList<String> array1 = new ArrayList<String>();
        static ArrayList<String> array2 = new ArrayList<String>();    public static ArrayList<String> test(ArrayList<String> array1, ArrayList<String> array2) {
            ArrayList<String> array0 = new ArrayList<String>();
            for (String s : array1) {
                for (String ss : array2) {
                    array0.add(s + ss);
                }
            }
            return array0;
        }    public static void main(String[] args) {
            array0.add("我");
            array0.add("你");
            array0.add("他");        array1.add("想");
            array1.add("不想");        array2.add("摸摸你");
            array2.add("亲亲你");
            array2.add("闻闻你");        for (String s : test(test(array0, array1), array2)) {
                System.out.println(s);
            }
        }
    }我想摸摸你
    我想亲亲你
    我想闻闻你
    我不想摸摸你
    我不想亲亲你
    我不想闻闻你
    你想摸摸你
    你想亲亲你
    你想闻闻你
    你不想摸摸你
    你不想亲亲你
    你不想闻闻你
    他想摸摸你
    他想亲亲你
    他想闻闻你
    他不想摸摸你
    他不想亲亲你
    他不想闻闻你
      

  2.   


    import java.util.*;public class Test
    {
    public static void main(String[] args)
    {
    ArrayList<String> arr1 = new ArrayList<String>();
    arr1.add("我");
    arr1.add("你");
    arr1.add("他");
    ArrayList<String> arr2 = new ArrayList<String>();
    arr2.add("想");
    arr2.add("不想");
    ArrayList<String> arr3 = new ArrayList<String>();
    arr3.add("摸摸你");
    arr3.add("亲亲你");
    arr3.add("闻闻你");

    ArrayList<String> arrresult = new ArrayList<String>();
    for (String str1 : arr1)
    for (String str2 : arr2)
    for (String str3 : arr3)
    arrresult.add(str1 + str2 + str3);
    for (String str : arrresult)
    System.out.println(str);
    }
    }
      

  3.   

    9楼和10楼的代码都很好,但前者的代码相比较而言更好一点。
    首先他把数据组合封装到了一个函数里面,这样比较规范,便于维护;其次,他没有定义一个新的ArrayList对象,而是直接把array1和array2加到了array0上面,这样节省了内存占用。
    总之,都挺高的! 
      

  4.   

    如果不知到有几个列表呢?也就是不知道要几个for循环