Liste des numéros dans une plage en Java

1. Vue d'ensemble

Dans ce didacticiel, nous explorerons différentes façons de répertorier des séquences de nombres dans une plage.

2. Liste des numéros dans une plage

2.1. Boucle for traditionnelle

Nous pouvons utiliser une boucle for traditionnelle pour générer des nombres dans une plage spécifiée:

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

Le code ci-dessus générera une liste contenant des nombres du début (inclus) à la fin (exclusif).

2.2. JDK 8 IntStream.range

IntStream , introduit dans JDK 8, peut être utilisé pour générer des nombres dans une plage donnée, réduisant ainsi le besoin d'une boucle for :

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

2.3. IntStream.rangeClosed

Dans la section précédente, la fin est exclusive. Pour obtenir des nombres dans une plage où la fin est inclusive, il y a IntStream.rangeClosed :

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

2.4. IntStream.iterate

Les sections précédentes utilisaient une plage pour obtenir une séquence de nombres. Lorsque nous savons combien de nombres dans une séquence sont nécessaires, nous pouvons utiliser IntStream.iterate :

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

Ici, le paramètre limit limite le nombre d'éléments à parcourir.

3. Conclusion

Dans cet article, nous avons vu différentes façons de générer des nombres dans une plage.

Des extraits de code, comme toujours, peuvent être trouvés sur GitHub.