J'ai déjà défini un tableau Java, par exemple.
float[] values = new float[3];
Je voudrais faire quelque chose comme ça plus loin dans le code:
values = {0.1f, 0.2f, 0.3f};
Mais cela me donne une erreur de compilation. Existe-t-il un moyen plus agréable de définir plusieurs valeurs à la fois, plutôt que de le faire?:
values[0] = 0.1f;
values[1] = 0.2f;
values[2] = 0.3f;
Merci!
Oui:
float[] values = {0.1f, 0.2f, 0.3f};
Cette syntaxe est seulement autorisé dans un initialiseur. Vous ne pouvez pas l'utiliser dans une affectation pour laquelle vous pouvez effectuer les tâches suivantes:
values = new float[3];
ou
values = new float[] {0.1f, 0.2f, 0.3f};
Essayer de trouver une référence dans les spécifications de langue pour cela, mais c'est toujours aussi illisible. Quelqu'un d'autre en trouve un?
Sur déclaration, vous pouvez faire ce qui suit.
float[] values = {0.1f, 0.2f, 0.3f};
Lorsque le champ est déjà défini, essayez ceci.
values = new float[] {0.1f, 0.2f, 0.3f};
Sachez que la deuxième version crée également un nouveau tableau . Si values
était la seule référence à un champ déjà existant, il devient éligible pour le garbage collection.
Java ne fournit pas de construction qui assignera plusieurs valeurs aux éléments d'un tableau existant Les syntaxes d'initialisation ne peuvent être utilisées UNIQUEMENT que lors de la création d'un nouvel objet tableau. Cela peut être au moment de la déclaration, ou plus tard. Mais dans les deux cas, l'initialiseur initialise un nouvel objet de tableau et ne met pas à jour un objet existant.
values = new float[] { 0.1f, 0.2f, 0.3f };
Si vous connaissez les valeurs au moment de la compilation, vous pouvez faire:
float[] values = {0.1f, 0.2f, 0.3f};
Il n'y a aucun moyen de faire cela si les valeurs sont des variables au moment de l'exécution.
Cela devrait fonctionner, mais est plus lent et se sent mal: System.arraycopy(new float[]{...}, 0, values, 0, 3);
par exemple, j'ai essayé tout ce qui précède pour les caractères, il échoue mais cela a fonctionné pour moi >> réservé un pointeur puis attribuer des valeurs
char A[];
A = new char[]{'a', 'b', 'a', 'c', 'd', 'd', 'e', 'f', 'q', 'r'};
Vous pouvez utiliser une variable locale, telle que:
float[] values = new float[3];
float[] v = {0.1f, 0.2f, 0.3f};
float[] values = v;
public class arrayFloats {
public static void main (String [] args){
float [] Values = new float[3];
float Incre = 0.1f;
int Count = 0;
for (Count = 0;Count<3 ;Count++ ) {
Values [Count] = Incre + 0.0f;
Incre += 0.1f;
System.out.println("Values [" + Count + "] : " + Values [Count]);
}
}
}
//OUTPUT:
//Values [0] : 0.1
//Values [1] : 0.2
//Values [2] : 0.3
Ce n'est pas le tout et tous les assigner des valeurs à un tableau spécifique. Depuis que j'ai vu l'échantillon était compris entre 0.1 et 0.3, vous pouvez le faire de cette façon. Cette méthode est très utile si vous concevez des graphiques et des graphiques. La valeur x peut être incrémentée de 0,1 jusqu'à la nième fois.
Ou vous voulez concevoir une sorte de grille.