Comment initialiser un tableau en java

Comment initialiser un tableau en java
Un tableau en Java est une structure de données qui a des éléments consécutifs du même type. Les éléments sont indexés, à partir de zéro. En Java, un tableau est un objet obtenu à partir de la classe d'objet. Il existe trois façons de créer un tableau: un tableau peut être déclaré (créé) sans la longueur définie. Dans ce cas, la durée du tableau doit encore être définie. Un tableau peut être créé, avec la longueur définie et initialisée automatiquement avec les valeurs par défaut du type de tableau. Un tableau peut être créé avec les valeurs pratiques attribuées aux éléments du tableau. Dans ce cas, la longueur du tableau est indirectement définie par le nombre de valeurs pratiques.

Cet article illustre trois façons d'initialiser un tableau, en utilisant le type primitif, le type de chaîne et le type défini par l'utilisateur. Le type de chaîne et les types définis par l'utilisateur sont des types de référence. L'article commence par l'initialisation du tableau avec un type primitif.

Initialisation du tableau avec un type primitif

Le type de char sera utilisé ici. Char signifie le caractère. D'autres types primitifs sont effectués de la même manière. Tout le code de cette section a lieu dans la méthode principale (). La déclaration,

char [] arr;

déclare un tableau sans aucune valeur initiale et sans le nombre de caractères indiqué. Le nombre de caractères pour le tableau est la longueur du tableau. Une fois la durée décidée, elle reste ainsi jusqu'à la fin du programme. Une autre déclaration est nécessaire, avec celle-ci, pour donner une longueur à ce tableau, comme suit:

char [] arr;
Arr = nouveau char [5];

Maintenant, le nombre de caractères du tableau (longueur) est de 5. Une certaine initialisation a eu lieu avec la deuxième déclaration. Cependant, ce n'est pas une initialisation pratique. C'est l'initialisation avec 5 valeurs par défaut pour char. La valeur par défaut de char est le caractère vide, je.e. », Il n'a pas d'espace.

Le segment de code suivant attribue une valeur pratique (caractère) à chacun des emplacements de mémoire, des 5 variables de caractères du tableau:

arr [0] = 'f';
arr [1] = 'g';
arr [2] = 'h';
arr [3] = 'i';
arr [4] = 'J';

Ceci est une affectation ou un remplacement. Ce n'est pas une initialisation. L'initialisation a été effectuée avec des valeurs par défaut. Les deux instructions de déclaration ci-dessus peuvent être effectuées dans une déclaration, comme suit:

char [] arr = nouveau char [5];

Le nom du tableau est arr. Char est le mot réservé pour Char, qui apparaît des deux côtés de l'opérateur d'affectation. Nouveau est un autre opérateur. Il crée l'objet avec des valeurs par défaut. Le deuxième support carré de toute la déclaration a la longueur du tableau. À ce stade, chaque élément du tableau doit encore avoir une valeur pratique. C'est la deuxième façon de déclarer un tableau.

La troisième façon de déclarer un tableau implique l'initialisation avec des valeurs pratiques. C'est sous deux formes, comme suit:

char [] arr = 'f', 'g', 'h', 'i', 'j';

ou

char [] arr = new char [] 'f', 'g', 'h', 'i', 'j';

Le premier formulaire a le littéral du tableau, qui est appelé l'initialisateur du tableau. C'est en accolades. Chaque personnage est dans une seule citation. L'initialisateur du tableau détermine indirectement la longueur du tableau (nombre d'éléments). Le premier formulaire n'a pas le nouvel opérateur. Le deuxième formulaire a le nouvel opérateur. Cependant, ici, les deuxième crochets n'ont pas la longueur du tableau, car la longueur est implicite dans l'initialiseur du tableau, codé à côté.

Initialisation de la table de chaînes

L'objet String est un très bon exemple du type de référence en java. Il existe deux types de types en Java: les types primitifs et de référence. Les types primitifs sont: booléen, octet, char, court, int, long, double, flotteur. L'énoncé suivant déclare un tableau de chaînes sans aucune durée définie et toute valeur initiale (que ce soit par défaut ou pratique).

String [] arr;

Une autre déclaration est nécessaire, avec celle-ci, pour donner une longueur à ce tableau, comme suit:

String [] arr;
arr = new String [4];

Maintenant, le nombre de chaînes (références) du tableau est 4. Une certaine initialisation a eu lieu avec la deuxième déclaration. Cependant, ce n'est pas une initialisation pratique. C'est l'initialisation avec 4 valeurs par défaut pour la chaîne. La valeur par défaut de la chaîne est nul, sans devis. Le code suivant dans la méthode principale () illustre ceci:

String [] arr;
arr = new String [4];
pour (int i = 0; i<4; i++)
Système.dehors.print (arr [i]); Système.dehors.imprimer(");

Système.dehors.println ();

La sortie est:

null null null

Le segment de code suivant attribue une valeur pratique (référence de chaîne) à chacun des emplacements de mémoire, des 4 variables de chaîne du tableau:

arr [0] = "un";
arr [1] = "deux";
arr [2] = "trois";
arr [3] = "quatre";

Ceci est une affectation ou un remplacement. Ce n'est pas une initialisation. L'initialisation a été effectuée avec des valeurs par défaut. Les deux instructions de déclaration ci-dessus peuvent être effectuées dans une déclaration, comme suit:

String [] arr = new String [4];

Le nom du tableau est arr. Une chaîne est un mot réservé pour la chaîne, qui apparaît des deux côtés de l'opérateur d'affectation. Nouveau est un autre opérateur. Il crée le tableau d'objets avec des valeurs par défaut. Dans toute la déclaration, le deuxième support carré a la longueur du tableau. À ce stade, chaque élément du tableau doit encore avoir une valeur pratique. C'était la deuxième façon de déclarer un tableau.

La troisième façon de déclarer un tableau implique l'initialisation avec des valeurs pratiques. C'est sous deux formes, comme suit:

String [] arr = "One", "Two", "trois", "quatre";

ou

String [] arr = new String [] "One", "Two", "trois", "quatre";

Le premier formulaire a le littéral du tableau, qui est appelé l'initialisateur du tableau. C'est en accolades. Chaque personnage est dans une seule citation. L'initialisateur du tableau détermine indirectement la longueur du tableau (nombre d'éléments). Le premier formulaire n'a pas le nouvel opérateur. Le deuxième formulaire a le nouvel opérateur. Cependant, ici, le deuxième support carré n'a pas la longueur du tableau, car la longueur est implicite dans l'initialiseur du tableau, codé à côté.

Remarque: Pour utiliser la chaîne ou le tableau en java, ni la classe de chaîne ni la classe de tableau ne doivent être importées.

Objets définis par l'utilisateur

Ce qui suit est un exemple de classe définie par l'utilisateur:

classe ACLASS
int prop;
int mthd ()
Retour Prop;

Aclass est le nom de la classe à partir de laquelle ses objets seront créés.

Dans la fonction principale (), les segments de code suivants peuvent être utilisés:

Aclass obj1 = new aclass ();
obj1.prop = 1;
int ret1 = obj1.MTHD ();
Système.dehors.println (ret1);
Aclass obj2 = new aclass ();
obj2.prop = 2;
int ret2 = obj2.MTHD ();
Système.dehors.println (ret2);
Aclass obj3 = new aclass ();
obj3.prop = 3;
int ret3 = obj3.MTHD ();
Système.dehors.println (ret3);

Chaque segment de code crée un objet de type, Aclass. Chacun est un objet défini par l'utilisateur. Chaque segment de code attribue un entier à la propriété (champ) de chaque objet. Il y a trois objets différents de la même classe. Chaque segment de code appelle sa méthode pour son objet. La sortie des trois segments de code doit être: 1 2 3, avec chaque numéro dans une ligne distincte.

La déclaration d'un tableau d'un type de classe défini par l'utilisateur se fait de la même manière que dans les cas ci-dessus. Par exemple,

Aclass [] arr = nouvel aclass [3];

déclare un tableau de trois objets de type, Aclass. Cette instruction a créé un tableau initialisé avec la valeur de type par défaut. Pour tout type de référence, y compris le type de chaîne, la valeur par défaut est nul. Cela signifie qu'il y a trois valeurs de null dans le tableau, arr, maintenant. Le code suivant dans main () devrait le prouver:

Aclass [] arr = nouvel aclass [3];
pour (int i = 0; i<3; i++)
Système.dehors.print (arr [i]); Système.dehors.imprimer(");

Système.dehors.println ();

La sortie est:

null null null

L'énoncé suivant initialise le tableau avec des objets pratiques du type de plasse:

Aclass [] arr = obj1, obj2, obj3;
Cette déclaration est très correcte. Malheureusement, le segment de code suivant, imprime les codes, au lieu d'OBJ1, OBJ2 et OBJ3:
Aclass [] arr = obj1, obj2, obj3;
pour (int i = 0; i<3; i++)
Système.dehors.print (arr [i]); Système.dehors.imprimer(");

Système.dehors.println ();

La sortie est:

Aclass @ 6ff3c5b5 aclass @ 3764951d aclass @ 4b1210ee

Trois codes différents. La raison en est que le tableau attend des littéraux d'objets, mais des références d'objets ont été données.

Dans la procédure ci-dessus, les noms d'objets, OBJ1, OBJ2 et OBJ3, ont été créés (instanciés) avant de les écrire dans le tableau. Pour contourner ce problème, instanciez les objets en tant qu'éléments de tableau, sans leurs noms, comme suit:

Aclass [] arr = new aclass (), new aclass (), new aclass ();

De là, au lieu d'utiliser les noms d'objets, obj1, obj2 obj3 pour accéder aux propriétés et aux méthodes, utilisez les index de tableau comme suit:

arr [0].Prop et arr [0].MTHD (); arr [1].accessoire et arr [1].MTHD (); arr [2].Prop et arr [2].MTHD ();

Le résout le problème. Et donc les trois segments de code ci-dessus peuvent être réécrits comme:

Aclass [] arr = new aclass (), new aclass (), new aclass ();
arr [0].prop = 1;
int ret1 = arr [0].MTHD ();
Système.dehors.println (ret1);
arr [1].prop = 2;
int ret2 = arr [1].MTHD ();
Système.dehors.println (ret2);
arr [2].prop = 3;
int ret3 = arr [2].MTHD ();
Système.dehors.println (ret3);

Et la sortie ultime attendue, est comme avant, c'est-à-dire: 1 2 3, avec chaque numéro dans sa propre ligne.

Conclusion

Il existe deux types de types en Java: types primitifs et types de référence. Un tableau peut être déclaré sans aucune valeur et longueur d'élément. Un tableau peut être déclaré avec sa longueur mais initialisé à ses valeurs par défaut par le compilateur. Un tableau peut être déclaré, initialisé avec les valeurs pratiques. Si les valeurs sont des références et que les littéraux ne peuvent pas être utilisés comme valeurs, alors les valeurs du tableau devraient être les instanciations de la classe.