ArrayList Java中整数的排列

时间:2016-10-14 16:42:00

标签: java arraylist char integer permutation

我有ArrayList<Integer>。现在我需要找到这个数组中所有可能的整数排列,然后从我的排列列表中提取每个Integer。 (没有重复,每个数字只出现一次)。这就是我现在所做的事情:

for (int a : myList) {
     if (a != 0 && a < 10) {
        myString = myString + Integer.toString(a);
     }
}

permutation(myString);
private ArrayList<String> my_permutations = new ArrayList<>();

基本上我将ArrayList变为String并在其上运行以下函数:

public void permutation(String str) {
    permutation("", str);
}

private void permutation(String prefix, String str) {
    int n = str.length();
    if (n == 0) {
        my_permutations.add(prefix);
    } else {
        for (int i = 0; i < n; i++) {
            permutation(prefix + str.charAt(i), str.substring(0, i) + str.substring(i + 1, n));
        }
    }
}

这适用于数字1-9,但它会打破10+。有什么方法可以更好地做到这一点吗?在后一阶段,我通过循环遍历字符串并执行以下操作,逐句从Integers中提取Strings

Integer.parseInt(String.valueOf(single_string.charAt(i));

因此,例如,如果我的ArrayList包含1,2,3,我将获得String&#34; 123&#34;以及以下排列:

"123"
"132"
"312"
"321"
"213"
"231"

之后我遍历每个排列并提取单个整数,所以我将从第一个获得1 2 3,从第二个获得1 3 3等等

0 个答案:

没有答案