字符串数组排列组合成新的字符串

package com.mindao.app.vpatient.utils;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
/* 版权所有: 广州敏道科技有限公司
/*
/* 功能描述: 字符串处理工具类
/*
/* 创 建 人:李国才
/* 创建时间:2016年8月8日 上午10:35:35 	
 **/
public class StringUtils {
	/**
	 * ABCD等多个数组元素任意组合得到所有的使用了全部元素的新字符串数组,
	 * 比如ABC应该有3*2=6种,ABCD 有4*3*2=12种组合
	 * @param list
	 * @param s
	 * @return
	 */
	public static List<String> getAllSortList(List<String> list,String s){
		if (list.size()==1){
			List<String> tmpList =new ArrayList<>();
			String tmps= s+list.get(0);
			tmpList.add(tmps);
			return tmpList;
		}
		List<String> allList =new ArrayList<>();
		for (int i=0;i<list.size();i++) {
			List<String> tmpList =new ArrayList<>(list);
			List<String> tmpList2 =getAllSortList(tmpList,s+tmpList.remove(i)); 
			allList.addAll(tmpList2);
		}
		return allList;
	}
	public static void main(String[] args) {
		List<String> orgList =new ArrayList<>();
		orgList.add("A");
		orgList.add("B");
		orgList.add("C");
		List<String> desList = getAllSortList(orgList,"");
		for (String des : desList) {
			System.out.println(des);
		}
	}
}



运行结果:
ABC
ACB
BAC
BCA
CAB
CBA

猜你喜欢

转载自lgcjava.iteye.com/blog/2316999