java排列與組合代碼 java計(jì)算排列組合數(shù)的值

求解釋一段代碼,關(guān)于Java中排列組合的問題

ArrayListCharacter

漣水網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

newblist=new

ArrayListCharacter(blist);

是用blist的值創(chuàng)建一個(gè)新的ArrayList

如果

newblist

=

blist;這樣,那兩個(gè)ArrayList使用的是同一個(gè)引用,操作一個(gè)會(huì)影響另一個(gè)。

------------------------------------------------------------------------------------------------------------------------

這個(gè)代碼的遞歸思想是這樣的。

alist是數(shù)據(jù),blist是結(jié)果

循環(huán)alist,創(chuàng)建出一個(gè)newalist備份,將alist中的一個(gè)元素添加到newblist.add(alist.get(i));中,

并在newalist中刪除。

將這兩個(gè)新的對(duì)象遞歸下去。

[1,2,3]

[]

[2,3]

[1]

[3]

[1,2]

--------------------

遞歸使用的是新創(chuàng)建的list

所以方法結(jié)束后,對(duì)alist,blist沒有影響

[2,3]

[1]

[2]

[1,3]

java實(shí)現(xiàn)排列組合

char[] a={'1','2','3','4'};

String b= "";

String c= "";

for (int i = 0; i a.length-1; i++) {

b="["+a[i]+","+a[i+1]+"]";

c+=b;

}

System.out.println(c);

關(guān)于JAVA組合排列的實(shí)現(xiàn)

import?java.util.Arrays;

import?java.util.LinkedList;

public?class?RecursionNArray

{

private?static?LinkedListchar[]?recursionSub?(?LinkedListchar[]?list,?int?count,?char[][]?array,?int?ind,

int?start,?int...?indexs?)

{

start++;

if?(start??count?-?1)

{

return?null;

}

if?(start?==?0)

{

indexs?=?new?int[array.length];

}

for?(?indexs?=?0;?indexs??array.length;?indexs++?)

{

recursionSub?(list,?count,?array,?0,?start,?indexs);

if?(start?==?count?-?1)

{

char[]?temp?=?new?char[count];

for?(?int?i?=?count?-?1;?i?=?0;?i--?)

{

temp[start?-?i]?=?array[start?-?i][indexs[start?-?i]];

}

list.add?(temp);

}

}

return?list;

}

public?static?void?main?(?String[]?args?)

{

char[]?a?=?{?'中','國','有','個(gè)','人'?};

char[]?b?=?{?'中','國','有','個(gè)','人'?};

char[]?c?=?{?'中','國','有','個(gè)','人'?};

char[]?d?=?{?'中','國','有','個(gè)','人'?};

char[][]?temp?=?{?a,?b,?c,?d?};

LinkedListchar[]?list?=?new?LinkedListchar[]?();

recursionSub?(list,?temp.length,?temp,?0,?-1);

for?(?int?i?=?0;?i??list.size?();?i++?)

{

System.out.println?(Arrays.toString?(list.get?(i)).replaceAll?("[\\[\\]\\,\\s]",?""));

}

}

}

將兩個(gè)數(shù)組 排列組合到一個(gè)數(shù)組集合 求java 代碼

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class Test {

private String[] arr1;

private String[] arr2;

public Test(){

//數(shù)組長度可以隨意改,但必須保證兩個(gè)數(shù)組長度一樣

arr1 = new String[3];

arr2 = new String[3];

initArray();

}

private void initArray(){

Scanner scanner = new Scanner(System.in);

for(int i=0;iarr1.length;i++){

arr1[i] = scanner.next();

}

for(int i=0;iarr2.length;i++){

arr2[i] = scanner.next();

}

}

/**

* 獲取組合后的數(shù)組表單

* @return

*/

private ListString[] getcombineList(){

ListString[] list = new ArrayListString[]();

combineArray(list, arr1, arr2);

combineArray(list, arr2, arr1);

return list;

}

/**

* 遍歷數(shù)組str1,并將其復(fù)制到新的數(shù)組,再將str2中索引值與str1中索引值

* 相同的元素放入新的數(shù)組,然后將新的數(shù)組放入list中

* @param list

* @param str1

* @param str2

*/

private void combineArray(ListString[] list,String[] str1, String[] str2){

for(int i=0; istr1.length; i++){

String[] str = new String[str1.length];

for(int j=0; jstr2.length; j++){

str[j] = str2[j];

if(i == j)

str[j] = str1[j];

}

System.out.println(getArrayMessage(str));

list.add(str);

}

}

/**

* 將數(shù)組每一個(gè)元素組合成字符串

* @param str 字符串?dāng)?shù)組

* @return 組合字符串

*/

private String getArrayMessage(String[] str){

StringBuffer buffer = new StringBuffer();

for(int i=0; istr.length; i++){

if(i == str.length-1)

buffer.append(str[i]);

else

buffer.append(str[i]).append(",");

}

return buffer.toString();

}

public static void main(String[] argv){

Test test = new Test();

test.getcombineList();

}

}

輸入任意字符序列,輸出所有兩位數(shù)的排列組合JAVA代碼?

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

// 創(chuàng)建Scanner對(duì)象,用于獲取用戶輸入

Scanner scanner = new Scanner(System.in);

System.out.print("請(qǐng)輸入任意字符序列:");

// 獲取用戶輸入的字符序列

String str = scanner.nextLine();

// 循環(huán)遍歷字符序列中的每個(gè)字符

for (int i = 0; i str.length(); i++) {

// 獲取字符序列中的第i個(gè)字符

char c1 = str.charAt(i);

// 循環(huán)遍歷字符序列中的每個(gè)字符

for (int j = 0; j str.length(); j++) {

// 獲取字符序列中的第j個(gè)字符

char c2 = str.charAt(j);

// 如果第i個(gè)字符不等于第j個(gè)字符,則輸出它們的排列

if (i != j) {

System.out.println(c1 + "" + c2);

}

}

}

}

}

新聞名稱:java排列與組合代碼 java計(jì)算排列組合數(shù)的值
本文URL:http://muchs.cn/article0/dosspoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站響應(yīng)式網(wǎng)站、品牌網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、服務(wù)器托管、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)