Nummers binnen een bereik in Java vermelden

1. Overzicht

In deze zelfstudie onderzoeken we verschillende manieren om getallenreeksen binnen een bereik op te sommen.

2. Nummers in een bereik vermelden

2.1. Traditioneel voor Lus

We kunnen een traditioneel gebruiken voor lus om getallen in een opgegeven bereik te genereren:

openbare lijst getNumbersInRange (int start, int end) {List result = new ArrayList (); for (int i = start; i <end; i ++) {result.add (i); } resultaat teruggeven; }

De bovenstaande code genereert een lijst met nummers van begin (inclusief) tot einde (exclusief).

2.2. JDK 8 IntStream.-bereik

IntStream, geïntroduceerd in JDK 8, kan worden gebruikt om getallen in een bepaald bereik te genereren, waardoor de behoefte aan een voor lus:

openbare lijst getNumbersUsingIntStreamRange (int start, int end) {return IntStream.range (begin, einde) .boxed () .collect (Collectors.toList ()); }

2.3. IntStream.rangeClosed

In de vorige sectie is het einde is exclusief. Om getallen binnen een bereik te krijgen waar de einde is inclusief, er is IntStream.rangeClosed:

openbare lijst getNumbersUsingIntStreamRangeClosed (int start, int end) {retourneer IntStream.rangeClosed (start, end) .boxed () .collect (Collectors.toList ()); }

2.4. IntStream.iterate

De vorige secties gebruikten een bereik om een ​​reeks getallen te krijgen. Als we weten hoeveel getallen in een reeks nodig zijn, kunnen we de IntStream.iterate:

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

Hier de limiet parameter beperkt het aantal elementen dat moet worden herhaald.

3. Conclusie

In dit artikel hebben we verschillende manieren gezien om getallen binnen een bereik te genereren.

Codefragmenten zijn, zoals altijd, te vinden op GitHub.