Перестановка целых чисел в ArrayList Java

У меня есть ArrayList<Integer>. Теперь мне нужно найти все возможные перестановки for ( int a : myList ) { if ( a ! = 0 && a < 10 ) { myString = myString + Integer . toString ( a ); } } перестановка ( myString ); private ArrayList < String > my_permutations = new ArrayList <> (); в этом массиве, а затем извлечь каждый Integer из моего списка перестановок. (Повторения нет, каждое число происходит ровно один раз). Это то, что я делаю сейчас:

ArrayList

Поэтому по существу я превращаю себя Stringв a и запускаю на нем следующие функции: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)); } } }

Integers

Это отлично работает с цифрами 1-9, однако это ломается с 10+. Есть ли способ сделать это лучше? На последнем этапе я извлекаю Integersиз Stringsодного за другим, перебирая строку и выполняя:

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

Так, например, если мой ArrayList содержит 1,2,3, я получаю строку «123» и следующие перестановки:

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

После этого я перебираю каждую перестановку и извлекаю отдельные целые числа, чтобы получить 1 2 3 из первого, 1 3 2 из второго и т. Д.

java,arraylist,char,integer,permutation,

1

Ответов: 0

Перестановка целых чисел в ArrayList Java

У меня есть ArrayList<Integer>. Теперь мне нужно найти все возможные перестановки for ( int a : myList ) { if ( a ! = 0 && a < 10 ) { myString = myString + Integer . toString ( a ); } } перестановка ( myString ); private ArrayList < String > my_permutations = new ArrayList <> (); в этом массиве, а затем извлечь каждый Integer из моего списка перестановок. (Повторения нет, каждое число происходит ровно один раз). Это то, что я делаю сейчас:

ArrayList

Поэтому по существу я превращаю себя Stringв a и запускаю на нем следующие функции: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)); } } }

Integers

Это отлично работает с цифрами 1-9, однако это ломается с 10+. Есть ли способ сделать это лучше? На последнем этапе я извлекаю Integersиз Stringsодного за другим, перебирая строку и выполняя:

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

Так, например, если мой ArrayList содержит 1,2,3, я получаю строку «123» и следующие перестановки:

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

После этого я перебираю каждую перестановку и извлекаю отдельные целые числа, чтобы получить 1 2 3 из первого, 1 3 2 из второго и т. Д.

01Java, ArrayList, символ, целое число, перестановка,
Похожие вопросы