vitya_brodov
@vitya_brodov
Java dev

Как задать количество итераций циклу?

Есть метод, который на вход принимает число (5 или 7) и зависимости от числа делает количество итераций в цикле.
вопрос, как можно избавиться от дублировании?
код:
public static List<Integer> example(int number) {
        List<Integer> integers = new ArrayList<>();
        if (number == 5) {
            for (int i = 0; i < 6; i++) {
                integers.add(i);
            }
        }
        if (number == 7) {
            for (int i = 2; i < 9; i++) {
                integers.add(i);
            }
        }
        return integers;
    }
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
В вашем методе мне не нравится примерно все. Не нравится, что он static, не нравится использование бесчеловечных конструкций вроде if и for.

Я бы сделал так хотя бы:
public List<Integer> example(int number) {
        return switch (number) {
            case 5 -> IntStream.range(0, 6).boxed().toList();
            case 7 -> IntStream.range(2, 9).boxed().toList();
            default -> Collections.emptyList();
        };
    }


А лучше даже так:
private Map<Integer, List<Integer>> numbers = Map.of(5, List.of(0, 1, 2, 3, 4, 5),
            7, List.of(2, 3, 4, 5, 6, 7, 8));

    public List<Integer> example(int number) {
        return numbers.getOrDefault(number, Collections.emptyList());
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы