java排列组合代码 java排列数组

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

ArrayListCharacter

建网站原本是网站策划师、网络程序员、网页设计师等,应用各种网络程序开发技术和网页设计技术配合操作的协同工作。创新互联专业提供成都做网站、网站制作、成都外贸网站建设,网页设计,网站制作(企业站、响应式网站开发、电商门户网站)等服务,从网站深度策划、搜索引擎友好度优化到用户体验的提升,我们力求做到极致!

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 代码

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://hbruida.cn/article/doeghej.html