Tableau de taille Variable d'Initialisation en Java
J'ai un tableau d'entiers en Java qui est initialisé de la façon suivante:
public int MyNumbers[] = {0,0,0,0};
Je voudrais, cependant, d'initialiser le tableau à une longueur variable nombre de zéros.
private int number_of_elements = 4;
public int MyNumbers[] = {0} * number_of_elements; //????
Je suis paumé comment cela étant nouveau pour Java venant de C. des suggestions?
MODIFIER
Je sais que je pourrais utiliser un for
boucle, mais j'espère il y avait un moyen simple de le faire.
En Java
int[]
tableaux sont initialisés avec tous les éléments 0 par défaut, donc pas d'autres mesures doivent être prises, à l'exception new int[n]
pour créer un tableau rempli de 0. ("Alors [...] un tableau à une dimension est créée de la longueur spécifiée, et chaque élément du tableau est initialisé à sa valeur par défaut. [...] Pour le type int
, la valeur par défaut est zéro, qui est, 0
.")OriginalL'auteur daveslab | 2010-01-07
Vous devez vous connecter pour publier un commentaire.
voir http://java.sun.com/j2se/1.5.0/docs/api/java/util/Arrays.html
java.util.Arrays
?Yup. Une chose à noter, cependant, est que, selon la source de Arrays.java (JDK 6) la fonction ci-dessus n'est, en effet, utiliser une boucle for. Mais un jour, il pourrait tout aussi facilement changer le comportement d'utiliser quelque chose de plus bas niveau comme l'un memset (via JNI).
J'ai confiance dans la JVM de remplacer ce code par faaaaaast code. Généralement, les boucles sont déroulées par la JVM, mebbe elle, même optimisé pour un memset. En Java, jamais optimiser au niveau du code!
OriginalL'auteur laginimaineb
OriginalL'auteur Trevor Harrison
Vous pouvez également utiliser
ArrayList
de sorte que vous n'avez pas besoin de vous soucier de la taille à l'avance. Il va s'étendre dynamiquement le tableau interne chaque fois que nécessaire.Voici un tutoriel pour en savoir plus sur les Collections de l'API, qui
ArrayList
est partie.+1 "Préfèrent listes des tableaux"
OriginalL'auteur BalusC
Puisque c'est un tableau de
int
les éléments du tableau obtiendrez la valeur par défaut pour le type int est en Java de0
automatiquement.Si c'était un tableau de
Integer
objets que vous avez à remplir le tableau après la création de ce que la valeur par défaut pour un objet de référence estnull
. Pour définir des valeurs par défaut dans unObject
tableau, vous pouvez effectuer les opérations suivantes:La même technique pourrait être utilisée pour initialiser le
int
tableau de valeurs autres que zéro comme suit:OriginalL'auteur Tendayi Mawushe
Si vous cherchez quelque chose de semblable à Memset en C, je ne pense pas qu'il y en a un. Les Tableaux De.remplir la mise en œuvre semble être la même que d'une boucle for, si vous regardez Javadoc.
Cependant, je suis tombé sur cet article qui traite de la même question
http://www.searchenginecaffe.com/2007/03/how-to-quickly-reset-value-of-java.html
Il semble que l'utilisation du système.arraycopy est votre meilleure solution et c'est la fonction que vous pouvez utiliser (copié à partir du lien)
OriginalL'auteur Jimmy Tsai