Maison > Java > javaDidacticiel > Comment convertir int[] en Integer[] pour l'utiliser comme clés de carte en Java ?

Comment convertir int[] en Integer[] pour l'utiliser comme clés de carte en Java ?

Linda Hamilton
Libérer: 2024-10-30 11:40:40
original
775 Les gens l'ont consulté

How to Convert int[] to Integer[] for Use as Map Keys in Java?

Conversion de int[] en Integer[] pour les clés de carte en Java : un guide complet

En Java, les clés de carte nécessitent une égalité de référence, ce qui ne peut pas être obtenu avec des types primitifs comme int[]. Lorsque vous travaillez avec des tableaux int[] et que vous devez les utiliser comme clés dans une carte, il est nécessaire de les convertir en un type d'objet approprié. Explorons différentes options pour cette conversion.

Méthode 1 : Arrays.stream().boxed().toArray()

Java 8 a introduit une méthode concise pour convertir int[] en Integer[ ] en utilisant l'API stream :

<code class="java">int[] data = {1,2,3,4,5,6,7,8,9,10};

Integer[] primitiveToBoxed = Arrays
        .stream(data)
        .boxed()
        .toArray(Integer[]::new);</code>
Copier après la connexion

Méthode 2 : IntStream.of().boxed().toArray()

Une approche similaire utilisant IntStream :

<code class="java">Integer[] primitiveToBoxed = IntStream
        .of(data)
        .boxed()
        .toArray(Integer[]::new);</code>
Copier après la connexion

Considérations relatives aux clés de carte

Bien qu'Integer[] puisse servir de clé, il peut ne pas être idéal en raison de :

  • Surcharge : Integer met en cache les valeurs entre -128 à 127, entraînant des collisions potentielles dans des ensembles de données plus volumineux.
  • Surcharge de performances : Integer[] crée de nouveaux objets Integer pour chaque valeur int, introduisant une surcharge supplémentaire.

Options alternatives

Pour de meilleures performances et un caractère unique des clés, envisagez d'utiliser :

  • Objets personnalisés : Créez une classe personnalisée encapsulant le int[] et implémentant hashCode() et equals() pour une recherche efficace.
  • Longs : Comme les valeurs longues peuvent représenter des entiers, elles peuvent être utilisées comme clés dans Maps avec de meilleures performances que Integer[].
  • Bibliothèques externes : Recherchez dans la bibliothèque de collections Apache Commons ou Google Guava des collections spécialisées qui gèrent les types primitifs de manière performante.

N'oubliez pas que la meilleure approche dépend de la taille de l’ensemble de données et les exigences de performances. Choisir la technique appropriée vous permet de suivre efficacement la fréquence des combinaisons int[] dans votre ensemble de données.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal