Maison  >  Article  >  Java  >  API Stream dans Java 8 : comment mapper une collection au type int à l'aide de la méthode mapToInt()

API Stream dans Java 8 : comment mapper une collection au type int à l'aide de la méthode mapToInt()

王林
王林original
2023-07-31 21:06:184111parcourir

API Stream en Java 8 : Comment utiliser la méthode mapToInt() pour mapper une collection à un type int

Introduction :
Java 8 introduit l'API Stream, offrant aux développeurs un moyen plus concis et efficace d'exploiter les collections. L'une des méthodes couramment utilisées est mapToInt(), qui mappe les éléments de la collection au type int et renvoie un IntStream. Cet article explique comment utiliser la méthode mapToInt() et fournit quelques exemples d'utilisation.

1. Introduction à la méthode mapToInt()

mapToInt() est une méthode fournie dans l'API Stream, qui peut être utilisée pour mapper des éléments d'une collection au type int. La déclaration de cette méthode est la suivante :

IntStream mapToInt(ToIntFunction117c5a0bdb71ea9a9d0c2b99b03abe3e mapper)

Parmi eux, ToIntFunction est une interface de fonction, représentant une fonction de type d'entrée T et de type de sortie int. Lors de l'utilisation de la méthode mapToInt(), nous devons transmettre une implémentation ToIntFunction pour convertir les éléments de la collection en int.

2. Exemples d'utilisation

Voici quelques exemples d'utilisation de la méthode mapToInt() :

Exemple 1 : Mappez la longueur des éléments d'une collection de chaînes sur le type int

List<String> list = Arrays.asList("Apple", "Banana", "Orange", "Grapes");
IntStream intStream = list.stream().mapToInt(String::length);
intStream.forEach(System.out::println);

Dans cet exemple, nous créons d'abord une chaîne de caractères. liste de collections et convertissez-la en Stream à l’aide de la méthode stream(). Ensuite, utilisez la méthode mapToInt() pour mapper la longueur de chaque élément de la collection pour taper int et renvoyer un IntStream. Enfin, nous générons chaque valeur int mappée via la méthode forEach.

Exemple 2 : Mappage d'un attribut dans une collection d'objets pour taper int

Supposons que nous ayons une classe Person, qui a un attribut age. Nous pouvons mapper l'attribut age de chaque personne dans la collection d'objets Person au type int via la méthode mapToInt().

class Person {
    private int age;
    
    public Person(int age) {
        this.age = age;
    }
    
    public int getAge() {
        return age;
    }
}

List<Person> list = Arrays.asList(
        new Person(20),
        new Person(30),
        new Person(40)
);

IntStream intStream = list.stream().mapToInt(Person::getAge);
intStream.forEach(System.out::println);

Dans cet exemple, nous créons d'abord une classe Person et définissons un attribut age et une méthode getAge() dans la classe. Ensuite, une liste de collections d’objets Person est créée et convertie en Stream via la méthode stream(). Ensuite, utilisez la méthode mapToInt() pour mapper l'attribut age de chaque objet Person de la collection au type int et renvoyer un IntStream. Enfin, nous générons chaque valeur int mappée via la méthode forEach.

3. Résumé

Cet article présente la méthode mapToInt() de l'API Stream dans Java 8. Cette méthode peut mapper les éléments de la collection au type int et renvoyer un IntStream. Nous avons montré comment utiliser la méthode mapToInt() à travers des exemples, notamment en mappant la longueur des éléments de la collection de chaînes au type int et en mappant une propriété de la collection d'objets au type int.

En utilisant l'API Stream et la méthode mapToInt(), nous pouvons effectuer des opérations de collecte de manière plus concise et efficace dans le code. J'espère que cet article vous sera utile pour comprendre et utiliser l'API Stream dans Java 8.

Référence :

  • Documentation officielle de l'API Stream en Java 8 : https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html

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