2010-07-01 6 views
45
int[] array1 = {1, 2, 3, 4, 5, 6, ,7, 8}; - working 


array1 = {1, 1, 1, 1, 2, 5, ,7, 8}; - NOT working 

La première ligne fonctionne, mais la deuxième ligne ne fonctionne pas.Java: Comment initialiser un tableau en Java sur une ligne?

Comment puis-je effectuer l'initialisation à partir de la deuxième ligne dans une seule ligne de code?

Répondre

84
array = new int[] {1, 1, 2, 3, 5, 8}; 

Source: Oracle JavaDocs - Arrays

+2

Ajoutez à votre réponse le lien vers la documentation: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html – uthark

+2

C'est le "nouveau" qui est important. –

+1

@uthark: Je ne vois pas où cette syntaxe est sur la page que vous avez liée. Le plus proche, c'est la copie de tableau en bas, mais ce n'est pas exactement une solution d'une ligne. Peux-tu être plus précis? FWIW – MikeD

5

La raison pour laquelle le premier fonctionne est parce que le compilateur peut vérifier le nombre d'éléments que vous allez attribuer au tableau, puis allouer la quantité appropriée de mémoire.

EDIT: Je réalise maintenant que vous essayez juste de mettre à jour array1 avec de nouvelles données ... La réponse de Mike D résout cela.

+1

Si vous envoyez le tableau à autre chose (comme un gestionnaire de liste graphique) et réinitialisez le tableau comme ci-dessus, le lien vers le gestionnaire de liste graphique sera rompu. Je suis tombé sur ceci en développant avec Android. Donc, si vous voulez ** mettre à jour ** la liste, la meilleure chose à faire est de l'effacer et d'ajouter plus d'éléments avec ses propres outils. Et n'utilisez jamais de nouveau. : p –