我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

java排列与组合代码 java计算排列组合数的值

求解释一段代码,关于Java中排列组合的问题

ArrayListCharacter

涟水网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联公司于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司

newblist=new

ArrayListCharacter(blist);

是用blist的值创建一个新的ArrayList

如果

newblist

=

blist;这样,那两个ArrayList使用的是同一个引用,操作一个会影响另一个。

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

这个代码的递归思想是这样的。

alist是数据,blist是结果

循环alist,创建出一个newalist备份,将alist中的一个元素添加到newblist.add(alist.get(i));中,

并在newalist中删除。

将这两个新的对象递归下去。

[1,2,3]

[]

[2,3]

[1]

[3]

[1,2]

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

递归使用的是新创建的list

所以方法结束后,对alist,blist没有影响

[2,3]

[1]

[2]

[1,3]

java实现排列组合

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);

关于JAVA组合排列的实现

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 = { '中','国','有','个','人' };

char[] b = { '中','国','有','个','人' };

char[] c = { '中','国','有','个','人' };

char[] d = { '中','国','有','个','人' };

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]", ""));

}

}

}

将两个数组 排列组合到一个数组集合 求java 代码

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class Test {

private String[] arr1;

private String[] arr2;

public Test(){

//数组长度可以随意改,但必须保证两个数组长度一样

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();

}

}

/**

* 获取组合后的数组表单

* @return

*/

private ListString[] getcombineList(){

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

combineArray(list, arr1, arr2);

combineArray(list, arr2, arr1);

return list;

}

/**

* 遍历数组str1,并将其复制到新的数组,再将str2中索引值与str1中索引值

* 相同的元素放入新的数组,然后将新的数组放入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);

}

}

/**

* 将数组每一个元素组合成字符串

* @param str 字符串数组

* @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();

}

}

输入任意字符序列,输出所有两位数的排列组合JAVA代码?

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

// 创建Scanner对象,用于获取用户输入

Scanner scanner = new Scanner(System.in);

System.out.print("请输入任意字符序列:");

// 获取用户输入的字符序列

String str = scanner.nextLine();

// 循环遍历字符序列中的每个字符

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

// 获取字符序列中的第i个字符

char c1 = str.charAt(i);

// 循环遍历字符序列中的每个字符

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

// 获取字符序列中的第j个字符

char c2 = str.charAt(j);

// 如果第i个字符不等于第j个字符,则输出它们的排列

if (i != j) {

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

}

}

}

}

}


网页名称:java排列与组合代码 java计算排列组合数的值
文章来源:http://mswzjz.cn/article/dosspoo.html

其他资讯