你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

两个数组元素的二元组合

2021/12/28 9:21:47

文章目录

    String s = "{\n" +
            "   \"name\":[\"op\",\"pl\",\"zs\"],\n" +
            "   \"age\":[\"11\",\"12\"],\n" +
            "   \"sex\":\"F\",\n" +
            "   \"class\":[\"ONE\",\"TWO\"]\n" +
            "   \n" +
            "}";
    Map<String, Object> parse = JSON.parseObject(s, Map.class);
    List<String> rowkeys = new ArrayList<>();
    List<String> temp = new ArrayList<>();
    List<String> arr = new ArrayList<>();

    arr.add("name");
    arr.add("age");
    arr.add("sex");
    arr.add("class");


    for (String a : arr) {
        Object o = parse.get(a);
        if (o instanceof List) {
            List<String> os = (List<String>) o;
            for (int i = 0; i < os.size(); i++) {
                if (rowkeys.size() > 0) {
                    for (int i1 = 0; i1 < rowkeys.size(); i1++) {
                        temp.add(rowkeys.get(i1) + "_" + os.get(i));
                    }
                } else {
                    temp.add(os.get(i));
                }
                if (i == os.size() - 1) {
                    rowkeys.clear();
                    rowkeys.addAll(temp);
                    temp.clear();
                }
            }
        } else {
            for (int i1 = 0; i1 < rowkeys.size(); i1++) {
                temp.add(rowkeys.get(i1) + "_" + o);
                if (i1 == rowkeys.size() - 1) {
                    rowkeys.clear();
                    rowkeys.addAll(temp);
                    temp.clear();
                }
            }
        }
    }

    System.out.println(rowkeys.toString());