{"id":24897,"date":"2024-03-16T04:02:42","date_gmt":"2024-03-16T04:02:42","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/"},"modified":"2024-03-22T04:51:36","modified_gmt":"2024-03-22T04:51:36","slug":"multiple-arrays-permutation-and-combination-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/","title":{"rendered":"multiple arrays permutation and combination in Java"},"content":{"rendered":"<p>To achieve the permutation and combination of multiple arrays, you can use the recursive method. The specific steps are as follows:<\/p>\n<ol>\n<li>Create a recursive function that takes three parameters: the original array collection, the current permutation result, and the current index of the array being processed.<\/li>\n<li>In the recursive function, the first step is to check if the current index being processed exceeds the length of the original array set. If it does exceed, then the current permutation result is added to the final result set.<\/li>\n<li>If the current index of the array being processed has not exceeded the length of the original array collection, retrieve the current array being processed, iterate through all elements in the array, and add each element to the current permutation result.<\/li>\n<li>Call the recursive function itself, passing the current permutation result and the next array index as parameters.<\/li>\n<li>After the recursive function ends, return the final result set.<\/li>\n<\/ol>\n<p>Here is a sample code:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> java.util.ArrayList;\r\n<span class=\"hljs-keyword\">import<\/span> java.util.List;\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">ArrayPermutation<\/span> {\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> List&lt;List&lt;Integer&gt;&gt; <span class=\"hljs-title function_\">permute<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span>[][] arrays)<\/span> {\r\n        List&lt;List&lt;Integer&gt;&gt; result = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ArrayList<\/span>&lt;&gt;();\r\n        permuteHelper(result, <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ArrayList<\/span>&lt;&gt;(), arrays, <span class=\"hljs-number\">0<\/span>);\r\n        <span class=\"hljs-keyword\">return<\/span> result;\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">permuteHelper<\/span><span class=\"hljs-params\">(List&lt;List&lt;Integer&gt;&gt; result, List&lt;Integer&gt; current, <span class=\"hljs-type\">int<\/span>[][] arrays, <span class=\"hljs-type\">int<\/span> index)<\/span> {\r\n        <span class=\"hljs-keyword\">if<\/span> (index &gt;= arrays.length) {\r\n            result.add(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ArrayList<\/span>&lt;&gt;(current));\r\n            <span class=\"hljs-keyword\">return<\/span>;\r\n        }\r\n\r\n        <span class=\"hljs-type\">int<\/span>[] array = arrays[index];\r\n        <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">i<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">0<\/span>; i &lt; array.length; i++) {\r\n            current.add(array[i]);\r\n            permuteHelper(result, current, arrays, index + <span class=\"hljs-number\">1<\/span>);\r\n            current.remove(current.size() - <span class=\"hljs-number\">1<\/span>);\r\n        }\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">(String[] args)<\/span> {\r\n        <span class=\"hljs-type\">int<\/span>[][] arrays = {\r\n                {<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>},\r\n                {<span class=\"hljs-number\">4<\/span>, <span class=\"hljs-number\">5<\/span>},\r\n                {<span class=\"hljs-number\">6<\/span>, <span class=\"hljs-number\">7<\/span>, <span class=\"hljs-number\">8<\/span>}\r\n        };\r\n\r\n        List&lt;List&lt;Integer&gt;&gt; result = permute(arrays);\r\n        <span class=\"hljs-keyword\">for<\/span> (List&lt;Integer&gt; list : result) {\r\n            System.out.println(list);\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>The output result is:<\/p>\n<pre class=\"post-pre\"><code>[1, 4, 6]\r\n[1, 4, 7]\r\n[1, 4, 8]\r\n[1, 5, 6]\r\n[1, 5, 7]\r\n[1, 5, 8]\r\n[2, 4, 6]\r\n[2, 4, 7]\r\n[2, 4, 8]\r\n[2, 5, 6]\r\n[2, 5, 7]\r\n[2, 5, 8]\r\n[3, 4, 6]\r\n[3, 4, 7]\r\n[3, 4, 8]\r\n[3, 5, 6]\r\n[3, 5, 7]\r\n[3, 5, 8]\r\n<\/code><\/pre>\n<p>The code above achieves the permutation and combination of three arrays. You can modify the original array set as needed to achieve the permutation and combination of any number of arrays.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To achieve the permutation and combination of multiple arrays, you can use the recursive method. The specific steps are as follows: Create a recursive function that takes three parameters: the original array collection, the current permutation result, and the current index of the array being processed. In the recursive function, the first step is to [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-24897","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>multiple arrays permutation and combination in Java - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"multiple arrays permutation and combination in Java\" \/>\n<meta property=\"og:description\" content=\"To achieve the permutation and combination of multiple arrays, you can use the recursive method. The specific steps are as follows: Create a recursive function that takes three parameters: the original array collection, the current permutation result, and the current index of the array being processed. In the recursive function, the first step is to [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-16T04:02:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T04:51:36+00:00\" \/>\n<meta name=\"author\" content=\"Emily Johnson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emily Johnson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/\"},\"author\":{\"name\":\"Emily Johnson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\"},\"headline\":\"multiple arrays permutation and combination in Java\",\"datePublished\":\"2024-03-16T04:02:42+00:00\",\"dateModified\":\"2024-03-22T04:51:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/\"},\"wordCount\":201,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/\",\"name\":\"multiple arrays permutation and combination in Java - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T04:02:42+00:00\",\"dateModified\":\"2024-03-22T04:51:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"multiple arrays permutation and combination in Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\",\"name\":\"Emily Johnson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"caption\":\"Emily Johnson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"multiple arrays permutation and combination in Java - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/","og_locale":"en_US","og_type":"article","og_title":"multiple arrays permutation and combination in Java","og_description":"To achieve the permutation and combination of multiple arrays, you can use the recursive method. The specific steps are as follows: Create a recursive function that takes three parameters: the original array collection, the current permutation result, and the current index of the array being processed. In the recursive function, the first step is to [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T04:02:42+00:00","article_modified_time":"2024-03-22T04:51:36+00:00","author":"Emily Johnson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Emily Johnson","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/"},"author":{"name":"Emily Johnson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378"},"headline":"multiple arrays permutation and combination in Java","datePublished":"2024-03-16T04:02:42+00:00","dateModified":"2024-03-22T04:51:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/"},"wordCount":201,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/","name":"multiple arrays permutation and combination in Java - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T04:02:42+00:00","dateModified":"2024-03-22T04:51:36+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/multiple-arrays-permutation-and-combination-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"multiple arrays permutation and combination in Java"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378","name":"Emily Johnson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","caption":"Emily Johnson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/24897","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=24897"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/24897\/revisions"}],"predecessor-version":[{"id":58960,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/24897\/revisions\/58960"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=24897"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=24897"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=24897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}