Opérations de plage et d’agrégation
range, sum, average, summaryStatistics
Opérations de plage et d’agrégation est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 4 leçons au total.
Générer des plages
IntStream.range(start, end) produit des entiers consécutifs de start jusqu’à end, sans inclure cette dernière valeur.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
IntStream.range(0, 5).forEach(System.out::println);
}
}rangeClosed inclut la fin
IntStream.rangeClosed(start, end) inclut la dernière valeur : rangeClosed(1, 5) produit donc les valeurs de 1 à 5.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int sum = IntStream.rangeClosed(1, 5).sum();
System.out.println(sum);
}
}Remplacer les boucles indexées
Les plages remplacent élégamment les boucles for fondées sur des indices lorsqu’il faut parcourir les positions d’un tableau.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
String[] names = {"a", "b", "c"};
IntStream.range(0, names.length)
.forEach(i -> System.out.println(i + ": " + names[i]));
}
}sum
sum additionne tous les éléments et renvoie un résultat primitif.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int total = IntStream.rangeClosed(1, 100).sum();
System.out.println(total);
}
}average
average renvoie un OptionalDouble, car le flux peut être vide.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
double avg = IntStream.of(2, 4, 6, 8).average().getAsDouble();
System.out.println(avg);
}
}min et max
min et max renvoient OptionalInt. Utilisez getAsInt lorsque vous savez que le flux n’est pas vide.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int hi = IntStream.of(3, 9, 1, 7).max().getAsInt();
int lo = IntStream.of(3, 9, 1, 7).min().getAsInt();
System.out.println(lo + " .. " + hi);
}
}Nombre
count renvoie le nombre d’éléments sous la forme d’un long.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
long n = IntStream.rangeClosed(1, 50).filter(x -> x % 3 == 0).count();
System.out.println(n);
}
}summaryStatistics
summaryStatistics calcule le nombre d’éléments, la somme, le minimum, la moyenne et le maximum en un seul parcours, puis renvoie un IntSummaryStatistics.
import java.util.IntSummaryStatistics;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
IntSummaryStatistics stats = IntStream.of(5, 10, 15, 20).summaryStatistics();
System.out.println(stats);
}
}Lire les statistiques individuelles
L’objet récapitulatif expose getCount, getSum, getMin, getMax et getAverage.
import java.util.IntSummaryStatistics;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
IntSummaryStatistics s = IntStream.rangeClosed(1, 10).summaryStatistics();
System.out.println("count=" + s.getCount());
System.out.println("avg=" + s.getAverage());
System.out.println("max=" + s.getMax());
}
}Combiner une plage et un agrégat
Les plages et les agrégats se composent naturellement : générez, transformez, puis réduisez pour obtenir un nombre unique.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int sumOfSquares = IntStream.rangeClosed(1, 4)
.map(n -> n * n)
.sum();
System.out.println(sumOfSquares);
}
}Agrégats de LongStream
LongStream offre les mêmes méthodes de plage et d’agrégation, en renvoyant un LongSummaryStatistics.
import java.util.stream.LongStream;
public class Main {
public static void main(String[] args) {
long sum = LongStream.rangeClosed(1, 1000).sum();
System.out.println(sum);
}
}Vérification rapide
Quelle est la différence entre range et rangeClosed ?
Récapitulatif
Vous avez généré et résumé des plages de types primitifs :
rangeexclut la fin :rangeClosedl’inclut.- Agrégats :
sum,average(OptionalDouble),min/max(OptionalInt) etcount. summaryStatisticsles calcule tous en un seul parcours.
Questions Fréquemment Posées
La leçon « Opérations de plage et d’agrégation » est-elle gratuite ?
Oui — le texte complet de « Opérations de plage et d’agrégation » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Opérations de plage et d’agrégation » ?
range, sum, average, summaryStatistics Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Java Academy ?
Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Opérations de plage et d’agrégation » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?
Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- IntStream et LongStream
- Opérations de plage et d’agrégation
- Conversion vers et depuis des flux d’objets
- Générer des flux de types primitifs