Maison >Java >javaDidacticiel >Comment utiliser la fonction IntStream en Java pour les opérations de flux numérique

Comment utiliser la fonction IntStream en Java pour les opérations de flux numérique

WBOY
WBOYoriginal
2023-06-26 20:15:082417parcourir

La fonction IntStream en Java est une interface fonctionnelle nouvellement introduite dans Java 8. Il peut effectuer des opérations de streaming sur des données de type entier, notamment des opérations de filtrage, de mappage, de collecte et autres. Cet article explique comment utiliser la fonction IntStream pour les opérations de flux numériques.

1. Introduction à la fonction IntStream

IntStream est une interface fonctionnelle en Java, qui représente un flux d'éléments dont le type de base est int. Il hérite de l'interface Stream et ajoute des méthodes pour le type de base int.

Les méthodes d'IntStream sont principalement divisées dans les quatre catégories suivantes :

  1. Créer des flux : range, rangeClosed, of, iterate, generate et autres méthodes.
  2. Flux de conversion : map, flatMap, filter, méthodes distinctes, triées et autres.
  3. Flux de terminaison : forEach, toArray, sum, moyenne, réduction et autres méthodes.
  4. Flux d'opération : min, max, count, anyMatch, allMatch, noneMatch et autres méthodes.

2. Utilisation de base de la fonction IntStream

L'utilisation de IntStream est fondamentalement la même que celle de Stream Nous pouvons utiliser la méthode IntStream.range pour créer un flux entier dans une plage spécifiée :

IntStream intStream = IntStream.range(1, 10);

Nous pouvons également. utilisez la méthode IntStream.of pour créer un flux entier d'éléments spécifiés :

IntStream intStream = IntStream.of(1, 3, 5, 7, 9);

Vous pouvez également créer un flux itératif en utilisant la méthode IntStream.iterate :

IntStream intStream = IntStream.iterate(1, n -> n + 2).limit(5);
intStream.forEach(System.out::println);//1 3 5 7 9

Après avoir créé le flux, nous pouvons utiliser des opérations intermédiaires pour la conversion. Par exemple, nous pouvons utiliser la méthode map pour multiplier chaque élément :

IntStream intStream = IntStream.range(1, 10);
intStream.map(n -> n * 2).forEach(System.out::println);//2 4 6 8 10 12 14 16 18

Nous pouvons également utiliser la méthode filter pour filtrer les éléments qui remplissent les conditions :

IntStream intStream = IntStream.range(1, 10);
intStream.filter(n -> n % 2 == 0).forEach(System.out::println);//2 4 6 8

Après avoir terminé l'opération intermédiaire, nous pouvons utiliser l'opération de terminaison pour terminer les statistiques, la collecte et autres opérations. Par exemple, nous pouvons utiliser la méthode sum pour additionner le flux :

IntStream intStream = IntStream.range(1, 10);
int sum = intStream.filter(n -> n % 2 == 0).sum();
System.out.println(sum);//20

Nous pouvons également utiliser la méthode toArray pour convertir les éléments du flux en tableau :

IntStream intStream = IntStream.range(1, 10);
int[] arr = intStream.filter(n -> n % 2 == 0).toArray();
System.out.println(Arrays.toString(arr));//[2, 4, 6, 8]

3. Utilisation avancée de la fonction IntStream

IntStream a une utilisation plus avancée, telle que flatMap, réduire, collecter et d'autres méthodes. L'utilisation de ces méthodes est présentée ci-dessous.

  1. Méthode flatMap

La méthode flatMap peut mapper chaque élément d'un flux à un flux, puis fusionner ces petits flux en un seul grand flux. Par exemple, nous pouvons utiliser la méthode flatMap pour convertir chaque nombre en chaîne correspondante, puis fusionner ces chaînes dans un flux :

IntStream intStream = IntStream.range(1, 5);
Stream<String> stream = intStream.flatMap(n -> Stream.of(String.valueOf(n)));
stream.forEach(System.out::println);//"1" "2" "3" "4"
  1. méthode reduce

la méthodereduce peut réduire les éléments du flux en une valeur, pour exemple, somme, produit, etc. Nous pouvons utiliser la méthode réduire pour additionner le flux de type int :

IntStream intStream = IntStream.range(1, 5);
int sum = intStream.reduce(0, (a, b) -> a + b);
System.out.println(sum);//10
  1. méthode collect

La méthode collect peut collecter des éléments du flux dans un conteneur, tel que List, Set, Map, etc. Nous pouvons utiliser la méthode collect pour collecter des flux de type int dans une liste :

IntStream intStream = IntStream.range(1, 5);
List<Integer> list = intStream.boxed().collect(Collectors.toList());
System.out.println(list);//[1, 2, 3, 4]

IV Résumé

Cet article présente l'utilisation de base et avancée de la fonction IntStream en Java. La fonction IntStream peut effectuer des opérations de streaming sur des éléments de type int et fournit une multitude d'opérations intermédiaires et d'opérations de terminaison, nous permettant d'effectuer facilement divers calculs numériques et tâches de collecte de données. J'espère que les lecteurs pourront maîtriser l'utilisation de la fonction IntStream grâce à l'introduction de cet article, ce qui facilitera les futurs travaux de développement Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn