Une ArrayList Java est un tableau redimensionnable à usage général. Il fournit la plupart des fonctionnalités généralement attendues des tableaux dans d'autres langages. Celles-ci incluent :l'accès aux éléments à l'aide d'un index, l'ajout, la suppression et la mise à jour d'éléments, le redimensionnement dynamique, l'itération sur les éléments, etc. La plupart de ces opérations ont été spécialement modifiées pour un usage général.
Il existe quelques autres types de "tableaux" (classes qui implémentent la List interface, pour être technique) qui sont destinés à des fins particulières. Ceux-ci incluent :
Ces classes spéciales sortent du cadre de cet article. Cependant, vous apprendrez à configurer et à utiliser une Java ArrayList à usage général.
Créer une ArrayList est simple. Une ArrayList vide peut être créé en utilisant le constructeur sans arguments. Ici, nous créons une liste de tableaux vide pour contenir des chaînes.
ArrayList alist =new ArrayList();
Si vous savez combien d'éléments votre liste de tableaux contiendra, vous pouvez spécifier la capacité initiale. Cette capacité initiale n'est qu'un indice pour l'allocation de mémoire -- l'arraylist n'est pas limité à contenir le nombre spécifié d'éléments. Si vous connaissez et spécifiez la capacité initiale, vous pourriez obtenir une légère amélioration des performances.
ArrayList alist =new ArrayList(20);
Remplir une arraylist est assez facile. Utilisez simplement add() méthode pour ajouter un seul élément à la fin de l'arraylist. Voici un exemple :
ArrayList alist =new ArrayList();
alist.add("pomme");
alist.add("banane");
alist.add("cantaloup");
alist.add("orange");
System.out.println(alist);
# impressions
[pomme, banane, cantaloup, orange]
Pour connaître le nombre d'éléments présents dans l'arraylist, utilisez la méthode size() .
System.out.println("Nombre d'éléments dans l'arraylist :" + alist.size());
# impressions
Nombre d'éléments dans l'arraylist :4
Vous voulez ajouter un élément à un index arbitraire ? Spécifiez l'index comme premier argument et l'élément est ajouté à cet index :
alist.add(3, "raisins");
System.out.println(alist);
# impressions
[pomme, banane, cantaloup, raisin, orange]
Vous pouvez également ajouter des éléments de n'importe quelle collection dans la hiérarchie des collections Java. Une ArrayList est un type spécifique appelé Liste . Voici un moyen de construire une Liste à partir d'un ensemble d'éléments (en utilisant Arrays.asList() ) et ajoutez-le à une ArrayList .
Éléments de liste =Arrays.asList("pear", "cherry");
alist.addAll(items);
System.out.println(alist);
# impressions
[pomme, banane, cantaloup, raisin, orange, poire, cerise]
Bien sûr, vous pouvez spécifier un index comme premier argument ici pour ajouter les éléments commençant à cet index.
Une fois les éléments ajoutés à l'arraylist, comment y accéder à nouveau ?
Si vous connaissez l'index de l'élément, vous pouvez utiliser le get() méthode pour récupérer l'élément à cet index.
Élément de chaîne =alist.get(2);
System.out.println("L'élément à l'index 2 est :" + élément);
# impressions
L'élément à l'index 2 est :cantaloup
Que faire si vous ne connaissez pas l'index de l'article ? Vous pouvez utiliser indexOf() pour vérifier si l'élément est présent dans le tableau et récupérer l'élément à l'aide de l'index renvoyé.
System.out.println(alist);
int index =alist.indexOf("orange");
si ( indice <0 )
System.out.println("Élément \"orange\" introuvable");
autre
System.out.println("Élément \"orange\" trouvé à l'index " + index);
# impressions
[pomme, banane, cantaloup, raisin, orange, poire, cerise]
Article "orange" trouvé à l'index 4
Que faire si l'élément n'est pas présent dans l'arraylist ? L'indexOf() La méthode renvoie -1 lorsque l'élément n'est pas trouvé.
index =alist.indexOf("raisin");
si ( indice <0 )
System.out.println("Item \"grape\" not found");
autre
System.out.println("Item \"raisin\" trouvé à l'index " + index);
# impressions
Article "raisin" introuvable
Bien sûr, l'utilisation la plus courante d'une ArrayList itère sur les éléments. Cela peut être accompli de plusieurs façons. Nous en montrons quelques-uns ici.
Voici le moyen le plus simple d'itérer sur une liste de tableaux et d'extraire les éléments pour une sorte de traitement.
for (String fruit :alist) {
System.out.println("Fruit trouvé \"" + fruit + "\"");
}
# impressions
Fruit trouvé "pomme"
Fruit trouvé "banane"
Fruit trouvé "cantaloup"
Trouvé des fruits "raisins"
Trouvé fruit "orange"
Fruit trouvé "poire"
Trouvé fruit "cerise"
Ce code utilise la boucle for améliorée Java qui a été introduite dans Java 1.5. Avant cela, vous pouviez parcourir les éléments avec un itérateur. Un itérateur est également utilisé lorsque vous devez supprimer éléments pendant le processus d'itération comme l'illustre l'exemple ci-dessous. (Notez que nous faisons une copie de l'arraylist et travaillons sur la copie.)
ArrayList blist =new ArrayList(alist);
for (Iterator iter =blist.iterator(); iter.hasNext(); ) {
Chaîne fruit =iter.next();
if ( fruit.startsWith("c") )
iter.remove();
autre
System.out.println("Garder \"" + fruit + "\"");
}
# impressions
Garder la "pomme"
Garder la "banane"
Garder "les raisins"
Garder "orange"
Garde "poire"
Une fois les éléments ajoutés, nous avons besoin d'un moyen de remplacer les éléments indésirables. Cela peut être fait en utilisant le set() méthode avec un index.
alist.set(5, "ananas");
System.out.println(alist);
# impressions
[pomme, banane, cantaloup, raisin, orange, ananas, cerise]
Voyons maintenant comment supprimer des éléments d'une liste de tableaux. Si vous connaissez l'index de l'élément (peut-être avez-vous utilisé indexOf() décrit ci-dessus), vous pouvez utiliser la commande remove() méthode avec l'indice. Il renvoie l'élément supprimé.
String fruit =alist.remove(2);
System.out.println("Elément supprimé à 2 :" + fruit);
# impressions
Élément supprimé à 2 :cantaloup
Vous pouvez également spécifier l'élément pour supprimer le premier occurrence de l'élément dans la liste. La méthode renvoie true si l'élément a été trouvé et supprimé.
fruit ="raisin" ;
System.out.println("Supprimer " +fruit+ " de la liste ? " + alist.remove(fruit));
# impressions
Supprimer les raisins de la liste ? vrai
Comment utilisez-vous la ArrayList dans vos projets et à quelles problématiques particulières avez-vous été confronté ? Veuillez nous en informer dans les commentaires ci-dessous.