Перелік номерів у межах діапазону на Java

1. Огляд

У цьому підручнику ми дослідимо різні способи перерахування послідовностей чисел у межах діапазону.

2. Перелік номерів у діапазоні

2.1. Традиційний для петлі

Ми можемо використовувати традиційний цикл for для генерації чисел у заданому діапазоні:

public List getNumbersInRange(int start, int end) { List result = new ArrayList(); for (int i = start; i < end; i++) { result.add(i); } return result; }

Наведений вище код сформує список, що містить цифри від початку (включно) до кінця (виключно).

2.2. JDK 8 IntStream.range

IntStream , представлений у JDK 8, може використовуватися для генерації чисел у заданому діапазоні, полегшуючи потребу у циклі for :

public List getNumbersUsingIntStreamRange(int start, int end) { return IntStream.range(start, end) .boxed() .collect(Collectors.toList()); }

2.3. IntStream.rangeClosed

У попередньому розділі кінець - ексклюзивний. Щоб отримати числа в діапазоні, де кінець включений, існує IntStream.rangeClosed :

public List getNumbersUsingIntStreamRangeClosed(int start, int end) { return IntStream.rangeClosed(start, end) .boxed() .collect(Collectors.toList()); }

2.4. IntStream.iterate

Попередні розділи використовували діапазон для отримання послідовності чисел. Коли ми знаємо, скільки чисел у послідовності потрібно, ми можемо використовувати IntStream.iterate :

public List getNumbersUsingIntStreamIterate(int start, int limit) { return IntStream.iterate(start, i -> i + 1) .limit(limit) .boxed() .collect(Collectors.toList()); }

Тут граничний параметр обмежує кількість елементів для ітерації.

3. Висновок

У цій статті ми побачили різні способи генерації чисел у межах діапазону.

Фрагменти коду, як завжди, можна знайти на GitHub.