Изброяване на номера в диапазон в Java

1. Общ преглед

В този урок ще изследваме различни начини за изброяване на поредици от числа в рамките на диапазон.

2. Изброяване на номера в диапазон

2.1. Традиционно за Loop

Можем да използваме традиционен цикъл 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.