Maison >Java >javaDidacticiel >Comment convertir efficacement une liste en int[] en Java à l'aide de Streams ?

Comment convertir efficacement une liste en int[] en Java à l'aide de Streams ?

DDD
DDDoriginal
2024-12-23 20:20:24847parcourir

How to Efficiently Convert a List to an int[] in Java Using Streams?

Conversion efficace de la liste to int[] Utilisation de Java Streams

Problème :

Les développeurs rencontrent des difficultés lorsqu'ils tentent de convertir une liste à int[] en Java. List.toArray() produit un Object[], qui ne peut pas être directement converti en Integer[] ou int[].

Solution initiale :

Une solution couramment utilisée implique de parcourir la liste à l'aide d'une boucle pour attribuer manuellement chaque élément à l'index correspondant dans le tableau int[].

Java 8 Stream Améliorations :

Cependant, Java 8 a introduit des améliorations de flux qui offrent une approche plus concise et efficace. En utilisant IntStreams, spécialement conçus pour gérer les types int primitifs, nous pouvons rationaliser le processus de conversion :

Solution avec mapToInt() et Lambda :

int[] example1 = list.stream().mapToInt(i -> i).toArray();

Le mapToInt () transforme chaque élément de Stream en int, permettant la conversion en IntStream. L'expression lambda (i -> i) déballe simplement l'entier.

Solution avec mapToInt() et référence de méthode :

Alternativement, nous pouvons utiliser une référence de méthode :

int[] example2 = list.stream().mapToInt(Integer::intValue).toArray();

Pensée Processus :

Stream#toArray() renvoie un Object[] par défaut, nous exploitons donc mapToInt() pour convertir les éléments Integer en int. IntStreams fournit des méthodes natives toArray() qui produisent des tableaux int[].

En utilisant IntStreams, nous évitons le besoin d'un déballage supplémentaire ou d'une conversion explicite en Integer[] avant de convertir en int[]. Cette optimisation rationalise le processus de conversion, améliorant à la fois la brièveté et l'efficacité du code.

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