Les tableaux dans le code java

La ArrayList classe qui est utilisée est dans de nombreux programmes d'applications Android est seulement la pointe de l'iceberg collections Java. La bibliothèque Java contient de nombreuses classes de collections, chacun avec ses propres avantages. Le tableau contient une liste abrégée.

Certaines classes de collection
Nom de la classeCaractéristique
ArrayListUn tableau redimensionnable.
LinkedListUne liste de valeurs, chacune ayant un champ qui pointe vers le nextone dans la liste.
StackUne structure (qui croît de bas en haut) qui est l'accès à la plus haute optimizedfor valeur. Vous pouvez facilement ajouter une valeur à thetop ou de le supprimer à partir du haut.
QueueUne structure (qui pousse à une extrémité) qui est optimisé valeurs foradding à une extrémité (l'arrière) et la suppression des valeurs de theother fin (à l'avant).
PriorityQueueUne structure, comme une file d'attente, qui permet à certains (les plus prioritaires) les valeurs se déplacent vers l'avant.
HashSetUne collection contenant aucune valeur en double.
HashMapUne collection de paires clé / valeur.

Chaque classe de collection a son propre ensemble de méthodes (en plus des méthodes qu'il hérite de AbstractCollection, l'ancêtre de toutes les classes de collection).

Un tableau est un type particulier de collecte qui est optimisé pour l'indexation. Autrement dit, vous pouvez facilement et efficacement trouver la valeur 100e stockées dans un tableau, la valeur 1000e stockées dans un tableau, ou la valeur de 1.000.000ème stockées dans un tableau.

Le tableau est une caractéristique vénérable, essayé-et-vrai de nombreux langages de programmation, y compris les nouveaux langages tels que Java et des langages plus anciens tels que FORTRAN. En fait, l'histoire de la série remonte si loin que la plupart des langues (y compris Java) ont notation spéciale pour traiter avec les tableaux. La liste illustre la notation pour les tableaux dans un programme Java simple.

classe paquet com.allmycode.collections public SimpleCollectionsDemo {static void main (String [] args) {publicsString [] myArray = new String [4] -myArray [0] = "Bonjour" -myArray [1] = "," -myArray [2] = "lecteurs" -myArray [3] = "!" -for (int i = 0 à i lt; 4- i ++) { System.out.print (myArray [i]) -}System.out.println () - pour (string La chaîne: myArray) {System.out.print (string) -}}}

La figure montre la sortie d'une série de code dans la liste. Tant l'ordinaire pour boucle et le renforcement de pour boucle afficher la même sortie.

L'exécution du code dans la liste.
L'exécution du code dans la liste.

Dans la liste, l'ordinaire pour boucle utilise indices, chaque indice marquée par des crochets. Comme il est avec toutes les collections Java, l'indice de la valeur initiale est 0, pas 1. Notez également le numéro 4 dans la déclaration de la matrice - il indique que "vous pouvez stocker 4 valeurs dans le tableau."

Le numéro 4 qui ne fonctionne pas indiquez que "vous pouvez attribuer une valeur à myArray [4]."En fait, si vous ajoutez un énoncé tel que myArray [4] = "Oops!" le code dans la liste, vous obtenez un message d'erreur méchant (ArrayIndexOutOfBoundsException) Lorsque vous exécutez le programme.

La déclaration String [] myArray = new String [4] crée un tableau vide et rend le monTableau la variable renvoient à ce tableau vide. Le réseau peut potentiellement stocker jusqu'à quatre valeurs. Mais, d'abord, cette variable se réfère à un tableau qui ne contient aucune valeur. Il est pas jusqu'à Java exécute la première déclaration d'affectation (myArray [0] = "Bonjour") Que le tableau contient toutes les valeurs.

Vous pouvez facilement et efficacement trouver la valeur 100e stockée dans un tableau ou la valeur de 1.000.000ème stockées dans un tableau. Pas mal pour le travail d'un jour. Alors, quel est l'inconvénient de l'utilisation d'un tableau? Le plus grand inconvénient d'un tableau est que chaque tableau a une limite fixe sur le nombre de valeurs qu'il peut contenir. Lorsque vous créez le tableau dans la liste, Java se réserve un espace pour autant que quatre Chaîne des valeurs.

Si, plus tard dans le programme, vous décidez que vous voulez stocker un cinquième élément dans le tableau, vous avez besoin d'une certaine, le code inefficace maladroite de vous faire un tableau plus large. Vous pouvez aussi surestimer la taille dont vous avez besoin pour un tableau, comme indiqué dans cet exemple:


String [] myArray = new String [20000000] -

Lorsque vous surestimez, vous perdez probablement beaucoup d'espace mémoire.

Une autre caractéristique désagréable d'un tableau est la difficulté que vous pouvez avoir à insérer de nouvelles valeurs. Imaginez avoir une boîte en bois pour chaque année dans votre collection de L'empereur Constantin Comics. La série remonte à l'année 307 après JC, lorsque Constantin est devenu le chef de l'Empire romain.

Vous avez seulement 1.700 boîtes parce que vous êtes absent environ six ans (la plupart du temps à partir des années 1150 à 1155). Les cases ne sont pas numérotées, mais ils sont empilés les uns à côté des autres dans une ligne qui est à 200 mètres de long. (La ligne est aussi longue que le 55ème étage d'un gratte-ciel est grand.)

Lors d'une vente de garage à Istanbul, vous trouverez une édition rare de L'empereur Constantin Comics à partir de Mars 1152. Après réjouir de votre première bande dessinée à partir de l'année 1152, vous vous rendez compte que vous devez insérer une nouvelle boîte dans la pile entre les années 1151 et 1153, qui consiste à déplacer la boîte an 2013 une dizaine de centimètres vers la gauche, et puis en déplaçant la case 2012 à la place de la boîte 2013, puis en déplaçant la case 2011 à la place de la boîte de 2012. Et ainsi de suite.

Vie pour le passionné Empereur Constantine Comics collecteur est sur le point de devenir lassant! Insertion d'une valeur dans le milieu d'un grand tableau est tout aussi ennuyeux.


» » » » Les tableaux dans le code java