Comment ajouter de nouveaux éléments à un tableau?
J'ai le code suivant:
String[] where;
where.append(ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1");
where.append(ContactsContract.Contacts.IN_VISIBLE_GROUP + "=1");
Ces deux ajoute ne sont pas de la compilation. Comment cela fonctionne correctement?
Vous devez vous connecter pour publier un commentaire.
La taille d'un tableau ne peut pas être modifié. Si vous voulez un plus grand tableau, vous devez instancier un nouveau.
Une meilleure solution serait d'utiliser un
ArrayList
peut se développer que vous en avez besoin. La méthodeArrayList.toArray( T[] a )
vous donne en retour de votre tableau, si vous en avez besoin dans ce formulaire.Si vous avez besoin de convertir un tableau simple...
Mais la plupart des choses que vous faites avec un tableau que vous pouvez faire avec cette liste de tableaux, trop:
Utiliser un
List<String>
, comme unArrayList<String>
. C'est dynamiquement cultivables, à la différence des tableaux (voir: Efficace Java 2nd Edition, Article 25: Préférez les listes de tableaux).Si vous insistez sur l'utilisation des tableaux, vous pouvez utiliser
java.util.Les tableaux de.copyOf
d'allouer un plus grand éventail d'accueillir l'élément supplémentaire. Ce n'est vraiment pas la meilleure solution.C'est
O(N)
parappend
.ArrayList
, d'autre part, aO(1)
coût amorti de chaque opération.Voir aussi
ArrayList
n'en interne.Apache Commons Lang a
il renvoie un nouveau tableau, mais si vous êtes vraiment travailler avec des tableaux pour une raison quelconque, cela peut être le moyen idéal de le faire.
Il y a une autre option que je n'ai pas vu ici et qui n'implique pas de "complexe" des Objets ou des Collections.
Il n'existe pas de méthode
append()
sur les tableaux. Au lieu de cela, comme déjà suggéré une Liste d'objets de service le besoin de l'insertion dynamique des éléments par exemple.Ou si vous avez vraiment envie d'utiliser un tableau:
mais c'est une taille fixe et pas d'éléments peuvent être ajoutés.
Comme tangens dit, la taille d'un tableau est fixe. Mais vous avez de l'instancier en premier, sinon il ne sera qu'une référence null.
Ce tableau peut contenir que 10 éléments. Ainsi, vous pouvez ajouter une valeur seulement 10 fois. Dans votre code, vous avez accès à une référence null. C'est pourquoi il ne marche pas. Afin d'avoir une
croissance dynamique de la collecte, de l'utilisation de la liste de tableaux.
Vous devez utiliser une Liste de Collection. Vous ne pouvez pas modifier les dimensions d'un tableau.
J'ai fait ce code! Il fonctionne comme un charme!
J'espère qu'il vous plaira!!
Si vous souhaitez stocker vos données dans un tableau simple comme ça
et que vous souhaitez ajouter certains éléments, comme par exemple les numéros veuillez nous StringBuilder qui est beaucoup plus efficace que la concaténation de chaîne.
C'est beaucoup mieux méthode pour construire votre chaîne et de le stocker dans votre " où " tableau.
L'ajout de nouveaux éléments de tableau de chaînes.
<code>
tag et cela a eu des problèmes avec les types génériques. S'il vous plaît essayer d'éviter cette balise, depuis ... il a des problèmes, et indenter votre code avec 4 espaces pour obtenir la mise en forme appropriée. Je l'ai fait pour votre question :).Il existe de nombreuses façons d'ajouter un élément à un tableau. Vous pouvez utiliser un temp
List
pour gérer l'élément, puis de la convertir àArray
ou vous pouvez utiliser lejava.util.Arrays.copyOf
et les combiner avec les génériques pour de meilleurs résultats.Cet exemple va vous montrer comment:
Pour utiliser cette méthode, vous avez juste besoin de l'appeler comme ceci:
Si vous voulez fusionner les deux tableau, vous pouvez modifier la méthode précédente comme ceci:
Maintenant, vous pouvez appeler la méthode comme ceci:
Comme je l'ai mentionné, vous pouvez également utiliser
List
objets. Cependant, il aura besoin d'un petit hack pour le jeter en sécurité comme ceci:Maintenant, vous pouvez appeler la méthode comme ceci:
newArray[elements.length] = element;
, vouliez-vous direnewArray[elements.length - 1] = element;
?Je ne suis pas expérimenté en Java, mais j'ai toujours dit que les tableaux sont des structures statiques qui ont une taille prédéfinie.
Vous devez utiliser une ArrayList ou d'un Vecteur ou de toute autre structure dynamique.
vous pouvez créer une liste de tableaux, et de l'utilisation
Collection.addAll()
pour convertir le tableau de chaîne de votre liste de tableauxVous pouvez simplement faire ceci:
Si on veut redimensionner un tableau que vous pourriez faire quelque chose comme ceci:
La taille du tableau ne peut pas être modifié. Si vous devez utiliser un tableau, vous pouvez utiliser: