Maison  >  Article  >  Java  >  Erreur Java : erreur de fusion de tableaux, comment résoudre et éviter

Erreur Java : erreur de fusion de tableaux, comment résoudre et éviter

WBOY
WBOYoriginal
2023-06-24 20:57:581090parcourir

Erreur Java : erreur de fusion de tableaux, comment résoudre et éviter

Dans la programmation Java, les tableaux sont des structures de données fréquemment utilisées. Lorsque vous devez fusionner deux tableaux ou plus, vous devez utiliser la méthode de fusion de tableaux fournie par Java. Cependant, lors du processus de fusion des tableaux, certaines erreurs peuvent survenir. Cet article présentera les erreurs et les solutions courantes lors de la fusion de tableaux Java, et fournira quelques suggestions pour éviter ces erreurs.

Erreurs courantes :

  1. Erreur de longueur de tableau incohérente

Lorsque les longueurs des deux tableaux à fusionner sont incohérentes, une erreur se produit en utilisant la méthode de fusion de tableaux fournie par Java. Par exemple :

int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5};
int[] arr3 = Arrays.copyOf(arr1, arr1.length + arr2.length);
System.arraycopy(arr2, 0, arr3, arr1.length, arr2.length);

Dans cet exemple, le tableau arr1 a une longueur de 3 et le tableau arr2 a une longueur de 2, en essayant de les fusionner en les copiant dans un tableau arr3 de longueur 5. Cependant, comme la longueur de arr3 ne peut être définie que par la somme des longueurs de arr1 et arr2, la fusion du tableau échoue.

  1. Erreur d'incompatibilité de type de tableau

En Java, seuls les tableaux du même type peuvent être fusionnés. Si les types d'éléments des deux tableaux sont différents, Java lèvera une exception UnsupportedOperationException. Par exemple :

String[] strArr = {"a", "b", "c"};
int[] intArr = {1, 2, 3};
Object[] objArr = ArrayUtils.addAll(strArr, intArr);

Dans cet exemple, vous essayez de fusionner un tableau de type String et un tableau de type int dans un tableau de type Object. Étant donné que les types String et int sont incompatibles, Java lancera une UnsupportedOperationException.

Solution :

  1. Pré-calculer la longueur du tableau

Avant de fusionner les tableaux, vous pouvez utiliser la formule de calcul de la longueur du tableau pour calculer la longueur du tableau cible à créer. Par exemple, lors de la fusion de deux tableaux de longueur n et m, la longueur du tableau cible doit être n+m. Ensuite, utilisez la méthode System.arraycopy() pour copier les deux tableaux dans le tableau cible. Par exemple :

int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5};
int[] arr3 = new int[arr1.length + arr2.length];
System.arraycopy(arr1, 0, arr3, 0, arr1.length);
System.arraycopy(arr2, 0, arr3, arr1.length, arr2.length);

Dans cet exemple, la longueur de arr3 est la somme des longueurs de arr1 et arr2. Créez d'abord un tableau d'une longueur de 5, puis copiez les éléments de arr1 et arr2 respectivement dans arr3. sont fusionnés avec succès.

  1. Utilisez des génériques pour fusionner des tableaux

Vous pouvez utiliser des génériques pour résoudre les problèmes d'incompatibilité des types de tableaux. Créez un tableau de type Object, convertissez les tableaux à fusionner en type Object, puis utilisez la méthode Arrays.copyOf() pour les fusionner. Par exemple :

String[] strArr = {"a", "b", "c"};
Integer[] intArr = {1, 2, 3};
Object[] objArr = new Object[strArr.length + intArr.length];
System.arraycopy(strArr, 0, objArr, 0, strArr.length);
System.arraycopy(intArr, 0, objArr, strArr.length, intArr.length);

Dans cet exemple, créez d'abord un tableau Object d'une longueur de 6, puis copiez strArr et intArr respectivement dans objArr. Puisque Object est la classe parent de toutes les classes Java, tous les types de tableaux peuvent être convertis en type Object pour réaliser la fusion de tableaux.

Conseils pour éviter les erreurs :

  1. Évitez de créer des tableaux multidimensionnels

Les tableaux multidimensionnels augmentent considérablement la complexité du processus de fusion de tableaux. Vous devriez essayer d'éviter de créer des tableaux multidimensionnels et d'utiliser plutôt des tableaux unidimensionnels ou d'utiliser List du framework de collection Java.

  1. Évitez d'utiliser de grandes quantités de mémoire

Les tableaux sont des structures de données gourmandes en mémoire et si vous fusionnez trop de tableaux, vous risquez de manquer de mémoire. L'utilisation de la mémoire doit être planifiée de manière appropriée pour des scénarios d'application spécifiques afin d'éviter d'occuper trop de mémoire.

  1. Suivez les normes de codage Java

Doit suivre les normes de codage Java, y compris les noms de variables significatifs et lisibles, les commentaires et les formats de code, etc. Cela peut rendre le code plus facile à comprendre et à maintenir.

Conclusion :

En Java, les tableaux sont des structures de données importantes et également là où des erreurs se produisent. Si vous devez fusionner des tableaux, veillez à éviter les erreurs telles que des longueurs de tableau incohérentes ou des types de tableaux incompatibles. Dans la programmation réelle, vous devez suivre les normes de codage Java et utiliser les solutions ci-dessus pour éviter et résoudre les erreurs de fusion de tableaux.

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