Java实现二维数组的排列组合

news/2024/7/3 5:44:06

今天同事在做一个需求的时候,需要设计到二维数组的排列组合为题,就趁这个机会,实现了这个功能,现记录一下;

public static void main(String[] args) {
        List<String[]> list = new ArrayList<>();
        list.add(new String[]{"A", "B", "C"});
        list.add(new String[]{"D", "E", "F"});
        list.add(new String[]{"X", "Y", "Z"});

        for (int i = 0; i < list.size() - 1; i++) {
            list.set(i + 1, combo(list.get(i), list.get(i + 1)));
        }
        String[] resultList = list.get(list.size() - 1);
        for (int i = 0; i < resultList.length; i++) {
            if (i % 10 == 0 && i != 0){
                System.out.println();
            }
            System.out.print(resultList[i] +"\t");
        }
    }

    public static String[] combo(String[] arr1, String[] arr2) {
        String[] newArr = new String[arr1.length * arr2.length];
        int k = 0;
        for (String s : arr1) {
            for (String ss : arr2) {
                newArr[k] = s + ":" + ss;
                k++;
            }
        }
        return newArr;
    }

结果如图所示:
在这里插入图片描述


http://www.niftyadmin.cn/n/3682146.html

相关文章

初学linux时遇到的那些哭笑不得的问题

1.终端中无法输入密码&#xff1f; 在终端输入密码&#xff0c;是不会在输入密码的时候看见星号或者圆点符号的。它不会有任何输入密码的视觉指示&#xff0c;也不会有任何光标移动&#xff0c;什么也不显示。 其实是输进去了&#xff0c;只是没有明文显示出来而已。输入完成后…

页面部分缓存

页面部分缓存是指输出缓存页面的某些部分&#xff0c;而不是缓存整个页面内容。实现页面部分缓存有两种机制&#xff1a;一种是将页面中需要缓存的部分置于用户控件&#xff08;.ascx文件&#xff09;中&#xff0c;并且为用户控件设置缓存功能&#xff08;包含用户控件的ASP.N…

Linux常用查询文件或日志命令

常见查询文件内容命令汇总如下&#xff1a; cat filename 查看日志&#xff0c;会打开整个文件&#xff0c;直接跑到最后面。tac filename 查看日志&#xff0c;会打开整个文件&#xff0c;倒序显示&#xff0c;不常用。more filename 查看日志&#xff0c;可以上下翻页&#…

loj#6285 数列分块入门 9 ( 回 滚 )

题目 &#xff1a; 链接 &#xff1a;https://loj.ac/problem/6285 题意&#xff1a;给出一个长为 n的数列&#xff0c;以及 n个操作&#xff0c;操作涉及询问区间的最小众数。 思路&#xff1a;虽然这不是一道 回滚莫队题&#xff0c;就是 暴力分块 的题&#xff0c; 但是 还…

使用Java实现一个缓存

啥也不说&#xff0c;直接上代码&#xff0c;欢迎指正。 package com.example.demo.cache;/*** className: JdkCache* description: TODO 类描述* author: Yang.H* date: 2021/8/2014:26**/import lombok.extern.slf4j.Slf4j;import java.util.Date; import java.util.Map; im…

【Java基础】之集合

集合 集合继承图 Collection 继承图 常用方法 1. add:添加元素 2. remove:删除指定元素&#xff0c;或指定下标。重载&#xff1b; 3. contains&#xff1a;查找指定元素是否存在 4. size&#xff1a;获取元素的个数 5. isEmpty:判断集合是否为空&#xff1b; 6. clear&…

洛谷P1147连续自然数和

采用前缀和思想&#xff0c;用二分查找寻找区间&#xff0c;时间复杂度O(nnlogn) #include<bits/stdc.h> #define maxn 2000000 using namespace std; long long arr[maxn1]; long long brr[maxn1]; int main() {brr[0]0;for(int i1;i<maxn;i){arr[i]i;brr[i]brr[i-1]…

ASP.NET:使用web.config文件进行配置

web.config配置文件中所有的配置设置都应该位于 <configuration> <system.web> 和 </system.web> </configuration> 之间. web.config的设置对于整个应用程序起作用&#xff0c;同时程序中随时可以调用web.config中的节点设置及关键key的值。web.c…