Les espaces de stockages List, ArrayList

Transcription

Les espaces de stockages List, ArrayList
Les espaces de stockages List, ArrayList
PlayList associée
PlayList 5.
Généralités
-
Il est parfois nécessaire de gérer des informations en les numérotant ou en les
regroupant.
Deux approches :
o Statique : on utilisera un tableau typé dimensionné : []
o Dynamique :
 On utilisera une collection typée : LIST<Type>
 On utilisera une collection non typée : ARRAYLIST
Les tableaux
Les tableaux de valeurs sont utiles lorsque l'on manipule des données multiples de même type dont
on connaît le nombre maximum initialement.
Un tableau se déclare à l’aide des crochets [].
Syntaxe
type_des_éléments_du_tableau[] nom_tableau = new type_des_éléments_du_tableau[nombre d’éléments]
Exemple (déclaration d’un tableau de 10 réels) :
float[] Notes = new float[10];
Remarque : la numérotation des éléments d’un tableau commence à 0. Dans l’exemple, les éléments
de Notes sont donc Notes[0], Notes[1]….Notes[9].
Les Collections typée LIST<Type>
Ce type de collection permet de stocker un seul type d’éléments, type qui sera précisé lors de la
création de la liste.
Syntaxe
Ou
var nom_collection = new LIST<type_des_éléments>();
LIST<type_des_éléments> nom_collection = new LIST<type_des_éléments>();
Exemple (déclaration d’une collection de chaînes de caractères)
var MaCollection = new LIST<string>();
LIST<string> MaCollection = new LIST<string>();
SLAM 2 - Page 1
Remarque :
- Le premier index vaut 0.
- Pour récupérer les valeurs, l’utilisation d’un cast est superflu car la collection est dite
fortement typée.
Les méthodes principales sont (source microsoft):
Nom
Description
Add
Ajoute un objet à la fin de List<T>.
Clear
Supprime tous les éléments de List<T>.
Contains
Détermine si un élément est dans List<T>.
Détermine si le List<T> contient des éléments qui correspondent aux
Exists
conditions définies par le prédicat spécifié.
Recherche un élément qui correspond aux conditions définies par le
Find
prédicat spécifié et retourne la première occurrence dans le List<T> entier.
Recherche un élément qui correspond aux conditions définies par le
FindIndex(Predicate<T>) prédicat spécifié, et retourne l'index de base zéro de la première occurrence
dans le List<T> entier.
Recherche l'objet spécifié et retourne l'index de base zéro de la première
IndexOf(T)
occurrence dans l'ensemble du List<T>.
Recherche l'objet spécifié et retourne l'index de base zéro de la première
IndexOf(T, Int32)
occurrence dans la plage d'éléments du List<T> qui s'étend de l'index
spécifié au dernier élément.
Recherche l'objet spécifié et retourne l'index de base zéro de la première
IndexOf(T, Int32, Int32) occurrence dans la plage d'éléments du List<T> qui commence à l'index
spécifié et qui contient le nombre d'éléments spécifié.
Insert
Insère un élément dans List<T> à l'index spécifié.
Remove
Supprime la première occurrence d'un objet spécifique de List<T>.
RemoveAt
Supprime l'élément au niveau de l'index spécifié de List<T>.
Reverse()
Inverse l'ordre des éléments dans l'intégralité de List<T>.
Trie les éléments dans l'intégralité de List<T> à l'aide du comparateur par
Sort()
défaut.
Les propriétés principales sont (source microsoft) :
Nom
Description
Capacity Obtient ou définit le nombre d'éléments que ArrayList peut contenir.
Count Obtient le nombre d'éléments réellement contenus dans ArrayList.
L’accès à un élément de la collection se fait à l’aide des crochets [].
SLAM 2 - Page 2
Les Collections non typée ARRAYLIST<Type>
Ce type de collection permet de stocker n’importe quel type d’éléments et plusieurs types dans la
même liste. Arraylist convertit toutes les valeurs en type Object avant de les stocker. Donc pour
récupérer ces valeurs, il faut faire un Cast vers le type souhaité.
ATTENTION : l’utilisation de ce type de collection nécessite l’ajout de using System.Collections;
Syntaxe
Ou
var nom_collection = new ARRAYLIST();
ARRAYLIST nom_collection = new ARRAYLIST;
Exemple :
var MaCollection = new ARRAYLIST();
ARRAYLIST MaCollection = new ARRAYLIST();
Remarque :
- Le premier index vaut 0.
- Pour récupérer les valeurs, l’utilisation d’un cast est obligatoire.
Les méthodes principales sont (source microsoft):
Nom
Description
Add
Clear
Contains
Ajoute un objet à la fin de ArrayList.
Supprime tous les éléments de ArrayList.
Détermine si un élément est dans ArrayList.
Recherche le Object spécifié et retourne l'index de base zéro de la première
IndexOf(Object)
occurrence dans l'ensemble du ArrayList.
Insert(Int32)
Insère un élément dans ArrayList à l'index spécifié.
Remove
Supprime la première occurrence d'un objet spécifique de ArrayList.
RemoveAt
Supprime l'élément au niveau de l'index spécifié de ArrayList.
Reverse()
Inverse l'ordre des éléments dans l'intégralité de ArrayList.
Sort()
Trie les éléments dans l'intégralité de ArrayList.
Les propriétés principales sont (source microsoft) :
Nom
Description
Capacity Obtient ou définit le nombre d'éléments que ArrayList peut contenir.
Count Obtient le nombre d'éléments réellement contenus dans ArrayList.
L’accès à un élément de la ArrayList se fait à l’aide des crochets [].
SLAM 2 - Page 3
Parcours d’une collection : ForEach
Une collection peut se parcourir comme un tableau à l’aide d’une simple instruction FOR.
Une collection peut se parcourir comme un tableau à l’aide de l’instruction FOREACH.
Syntaxe pour une LIST :
foreach (type nom_element in nom_collection)
Syntaxe pour les ARRAYLIST :
foreach (object nom_element in nom_collection)
Exemple pour une List d’entiers nommée MaListe :
foreach (int element in MaListe)
{
System.Console.WriteLine(element);
}
Remarque : il est inutile de déclarer nom_element si son utilisation ne dépasse pas le cadre de la
boucle.
SLAM 2 - Page 4