Listado de números dentro de un rango en Java

1. Información general

En este tutorial, exploraremos diferentes formas de enumerar secuencias de números dentro de un rango.

2. Listado de números en un rango

2.1. Tradicional para bucle

Podemos usar un bucle for tradicional para generar números en un rango específico:

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

El código anterior generará una lista que contiene números desde el principio (inclusive) hasta el final (exclusivo).

2.2. Rango de IntStream de JDK 8

IntStream , introducido en JDK 8, se puede usar para generar números en un rango dado, aliviando la necesidad de un bucle for :

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

2.3. IntStream.rangeClosed

En el apartado anterior, el final es exclusivo. Para obtener números en un rango donde el final es inclusivo, existe IntStream.rangeClosed :

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

2.4. IntStream.iterate

Las secciones anteriores usaban un rango para obtener una secuencia de números. Cuando sabemos cuántos números en una secuencia se necesitan, podemos utilizar IntStream.iterate :

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

Aquí, el parámetro de límite limita el número de elementos sobre los que iterar.

3. Conclusión

En este artículo, vimos diferentes formas de generar números dentro de un rango.

Los fragmentos de código, como siempre, se pueden encontrar en GitHub.