У меня есть функция, которая выглядит намного чище этот путь:Размещение вызова функции в цикле
public static List<Integer> permuteDigits(int number) {
List<Integer> permutations = new ArrayList<>();
for (String s : permutations(String.valueOf(number)))
permutations.add(Integer.parseInt(s));
return permutations;
}
Но вы можете видеть, что есть вызов функции внутри цикла для каждого-. Я уверен, что компилятор этого не делает, но ... функция не вызывается на каждой итерации цикла for, не так ли?
Я почти уверен, что это не тот случай, но я просто хотел убедиться. Иными словами, приведенный выше код не менее эффективен, чем следующие:
public static List<Integer> permuteDigits(int number) {
List<String> strPerms = permutations(String.valueOf(number));
List<Integer> permutations = new ArrayList<>();
for (String s : strPerms)
permutations.add(Integer.parseInt(s));
return permutations;
}
Исправить?