java 字符数字组合算法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java 字符数字组合算法

java 字符数字组合算法

 2014/11/13 21:45:53  piaohai  程序员俱乐部  我要评论(0)
  • 摘要:从指定集合中获取元素组合成不同的字符串.组合生成类(Combination.java)importjava.util.ArrayList;importjava.util.Arrays;importjava.util.List;/****@authorhymanz506600909@qq.com**/publicclassCombination{privatechar[]base;publicCombination(char[]base){this.base=base;
  • 标签:Java 算法

从指定集合中获取元素组合成不同的字符串.

?

  • 组合生成类(Combination.java)

?

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

?

/**

?*?

?* @author hymanz 506600909@qq.com

?*

?*/

public class Combination {

?

? ? private char[] base;

?

? ? public Combination(char[] base) {

? ? ? ? this.base = base;

? ? }

?

? ? public List<char[]> getCombinations(int length) {

?

? ? ? ? List<char[]> list = new ArrayList<char[]>();

? ? ? ? list.add(new char[length]);

?

? ? ? ? return compose(0, list);

? ? }

?

? ? private List<char[]> compose(int index, List<char[]> list) {

?

? ? ? ? if (index >= list.get(0).length) {

? ? ? ? ? ? return list;

? ? ? ? }

?

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

? ? ? ? ? ? char[] item = list.get(i);

? ? ? ? ? ? for (int j = 0; j < base.length; j++) {

? ? ? ? ? ? ? ? if (j > 0) {

? ? ? ? ? ? ? ? ? ? item = copy(item);

? ? ? ? ? ? ? ? ? ? list.add(item);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? item[index] = base[j];

? ? ? ? ? ? }

? ? ? ? }

?

? ? ? ? return compose(++index, list);

? ? }

?

? ? private char[] copy(char[] item) {

? ? ? ? return Arrays.copyOf(item, item.length);

? ? }

?

}

?

  • 调用方式?

public class Main {

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

? ? ? ??char[] base = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};

? ? ? ??

? ? ? ? Combination combination = new Combination(base);

? ? ? ? List<char[]> result = combination.getCombinations(3);

? ? ? ??

? ? ? ? for (char[] cs : result) {

? ? ? ? ? ? System.out.println( new String(cs));

? ? ? ? }

? ? }

}

?

?

?

?

上一篇: 去哪儿开通境外手机号购票功能 将上线英文网站 下一篇: 没有下一篇了!
发表评论
用户名: 匿名