Générer un flux à partir d'un tableau de types primitifs en Java

Parfois, nous utilisons un tableau de types primitifs tels que «char» et «boolean». Il est souvent possible d'opérer de manière concise en utilisant l'API Stream pour les tableaux. Cependant, ʻArrays # stream ne peut pas être appliqué à des tableaux primitifs autres que ʻint, long et double, alors notez ce qu'il faut faire dans de tels cas.

Utilisez la classe wrapper depuis le début

ʻArrays # stream` peut être utilisé pour les tableaux de n'importe quel type d'objet, utilisez donc la classe wrapper.

final Character[] array = {...};
Arrays.stream(array)
      ...

Générer et mapper des index avec ʻIntStream`

préféré ʻIntStream # range` est utilisé pour générer des index pour le tableau cible et les mapper aux éléments du tableau.

final char[] array = {...};
IntStream.range(0, array.length) //Notez que ce n'est pas rangeClosed
         .mapToObj(i -> array[i])
         ...

prime

Stream # flatMap est pratique lorsque vous souhaitez exploiter un double tableau avec stream à la fois. Exemple: je veux vérifier si tous les éléments d'un double tableau de type «booléen» sont «true».

public void run() {
  ...
  final boolean[][] table = ...;
  Arrays.stream(table)
        .flatMap(this::flatten)
        .allMatch(Boolean::booleanValue);
}

private Stream<Boolean> flatten(final boolean[] array) {
  return IntStream.range(0, array.length)
                  .mapToObj(i -> array[i]);
}

Recommended Posts

Générer un flux à partir d'un tableau de types primitifs en Java
Liste des types ajoutés dans Java 9
Obtenir une collection non vide à partir d'un flux facultatif avec java
Convertir un tableau de chaînes en une liste d'entiers en Java
Mapper sans utiliser de tableau en java
Comparer les éléments d'un tableau (Java)
À partir de Java9, les constructeurs de classe correspondant aux types primitifs sont marqués comme obsolètes.
[Java] Récupère des valeurs de manière aléatoire dans un tableau
Générer OffsetDateTime à partir de Clock et LocalDateTime en Java
Comparaison équivalente de la classe wrapper Java et du type primitif
À propos des instances Java
Une explication rapide des cinq types de statique Java
[Java11] Résumé du flux -Avantages du flux-
Un programme (Java) qui génère la somme des nombres pairs et impairs dans un tableau
J'ai étudié les types primitifs Java
API Java Stream en 5 minutes
Obtenez facilement des entiers à partir des propriétés système en Java
Obtenir des attributs et des valeurs à partir d'un fichier XML en Java
[Java8] Utilisez stream pour trier les tableaux de type int dans l'ordre décroissant
Implémentation Java de tri-tree
Note n ° 1 "Comptage et affichage des valeurs en double dans un tableau" [Java]
[Java] Générer un URI de données à partir d'une chaîne d'octets du contenu du fichier [Kotlin]
Concaténer les chaînes renvoyées par des méthodes multi-objets dans Java Stream
Vous souhaitez supprimer une IOException de Stream? dans ce cas
Comment obtenir la longueur d'un fichier audio avec Java
Élément Java effectif 25 Sélectionnez une liste dans un tableau Première moitié
Résumons la grammaire Java 8 du point de vue des ingénieurs iOS
J'ai envoyé un e-mail en Java
Mémo d'apprentissage Java (création d'un tableau)
À propos de Lambda, Stream, LocalDate de Java8
Types primitifs Java, types de référence, immuable, mutable
Générer l'URL de l'API CloudStack en Java
Les variables de tableau Java sont des types de référence
Essayez une expression If en Java
Liste des membres ajoutés dans Java 9
J'ai fait une annotation en Java.
Flux de traitement de base de Java Stream
Liste de conversion mutuelle de tableau / liste / flux Java
Implémentation d'une fonction similaire en Java
Utilisez-vous Stream en Java?
Exécuter un processus externe en Java
Types d'exceptions dans les systèmes d'entreprise
Augmenter dynamiquement le nombre d'éléments dans un tableau bidimensionnel Java (tableau multidimensionnel)
[Swift] Résumé de la suppression des éléments d'un tableau (mémo personnel)
L'histoire de l'acquisition de Java Silver en deux mois de totalement inexpérimenté.
Comment convertir un tableau de chaînes en un tableau d'objets avec l'API Stream
Je veux ForEach un tableau avec une expression Lambda en Java
[Java] Générez une liste restreinte à partir de plusieurs listes à l'aide de l'API Stream
Générer le code source à partir du fichier JAR avec JD-GUI du projet Java Decompiler
Lors de l'appel de println etc. à partir d'un fichier de classe Java externe en traitement
Étudiez le Deep Learning à partir de zéro en Java.
Implémentation de DBlayer en Java (RDB, MySQL)
Lors de la recherche de plusieurs dans un tableau Java
Obtenez le résultat de POST en Java
Importance de l'interface apprise de la collection Java
Traitement des données à l'aide de l'API de flux de Java 8
Appel de méthodes Java à partir de JavaScript exécutées en Java
Essayez d'utiliser l'API Stream en Java
Inverser la clé de la valeur dans la carte Java