当前位置: 代码迷 >> J2SE >> 从不同集合中组合数据的算法
  详细解决方案

从不同集合中组合数据的算法

热度:115   发布时间:2016-04-24 02:15:58.0
求一个从不同集合中组合数据的算法?
比如有三个独立的列表
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了。


------解决方案--------------------
Java code
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);        }    }}
------解决方案--------------------
Java code
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);    }}
  相关解决方案