Vous êtes sur la page 1sur 11

LOGO

Université Saad Dahlab


de Blida

Tableaux , ArrayList, LinkedList

Disponible sur: https://sites.google.com/a/esi.dz/informatiqueblida/


Mme BOUTOUMI
L2
2018- 2019
1. Les tableaux (1)

• Un tableau est une structure de données qui


stocke une série de n valeurs de même type
(élémentaire ou objet)
• Il peut être utilisé comme une variable, un argument ou
un type de retour d’une méthode

• L’accès à chaque valeur se fait avec un indice


entier
• Soit « tab » un tableau d’entiers
• tab[i] est le ième entier du tableau
• En Java i varie de 0 à n-1 (n est la taille du tableau)
• L’accès à la case « n » provoquera une erreur!
2
1. Les tableaux (2)
• Déclaration et Initialisation
• Pour définir un tableau d’entier on peut écrire:
• int[] a; ou int a[];
• Cette instruction ne déclare que la variable « a »
• L’opérateur « new » crée le tableau:
• a=new int[100];
• int a[]=new int[100];
• On peut aussi créer un tableau et l’initialiser simultanément avec
ses valeurs int[] nbrPremiers= {2, 3, 5, 7};
• Il est même possible d’initialiser un tableau anonyme:
• new int[] {11, 13, 17, 19};
• Cette syntaxe est employée pour réinitialiser un tableau sans créer
une nouvelle variable
• nbrPremiers =new int[] {11, 13, 17, 19};
3
1. Les tableaux (3)
• Taille et Parcours d’un tableau
• On peut récupérer la taille d’un tableau à l’aide de
nomduTableau.length

• Pour remplir ou parcourir un tableau nous pouvons utiliser


une boucle:
for (int i = 0; i < a.length; i++)
System.out.println(a[i]);
• Remarque:
• Il est légal en Java d’avoir un tableau de taille 0, qui est
différent de null.
• Cela est utile dans le cas d’une méthode qui retourne un
tableau comme type de retour
4
1. Les tableaux (4)
• Parcours d’un tableau avec for each
• Structure de contrôle introduite par JDK5, adaptée aux
collections, aux tableaux et aux chaînes.
int t [ ] {1,2,3,4};
for (int v : t) System.out.println (v) ;
• la variable v prendra successivement les différentes valeurs
du tableau t. On obtiendra le même résultat qu’en utilisant :
for (int i = 0; i < t.length; i++)
System.out.println(t[i]);
• Remarque: for... each ne s’applique qu’à des consultations de
valeurs, et en aucun cas à des modifications. Ainsi, avec cette
instruction :
for (int v : t) v = 0; // correct mais ne fait probablement
pas ce qu’on attend 5
1. Les tableaux (5)
• Copie des tableaux
• Pour copier toutes les valeur d’un tableau dans un autre, il
faut employer la méthode arraycopy de la classe System
• System.arraycopy(source, indiceSource, cible,
indiceCible, compte)
• Exemple
int[] ta= {2, 3, 5, 7};
int[] tb={1,10,100,1000,1010,1100};
System.arraycopy(ta,1,tb,2, 3);
for (int i = 0; i < tb.length; i++)
System.out.print(tb[i]+" ");
• Résultat? 1 10 3 5 7 1100
6
3. ArrayList(1)
 package java.util définit une classe, ArrayList permet de
construire des tableaux de taille variable (dynamique) de
différents types (Integer, Double,…, Object).
 Un objet ArrayList contient des valeurs d’un type donné. On doit
préciser ce type quand à la déclaration. Pour cela, on fait suivre le nom
de la classe ArrayList par le type des éléments, entre chevrons (< et >).
//Déclaration
ArrayList <String> Ts ; ArrayList <Integer> Tint;
ArrayList <Type> T;
//Création
Ts=new ArrayList <String>(); Tint= new ArrayList <Integer>();
T=new ArrayList <Type>();
// Création avec capacité initial
Ts=new ArrayList <String>(100); Tint= ArrayList <Integer>(150);
T=new ArrayList <Type>(200); 7
3. ArrayList(2)
Les objets ArrayList se manipulent essentiellement à travers les
méthodes suivantes:
 int size(): renvoie la longueur d’un objet ArrayList
int long=Ts.size();
 boolean is Empty(): Vérifier si un objet ArrayList est vide:
boolean b=Ts.isEmpty();
 Type get(int i): renvoie l’entrée de la case numéro i Comme pour les
tableaux, les cases des ArrayList sont numérotées en commençant à
0. Le type de l’objet retourné est celui précisé lors de la création de
l’ArrayList.
String str=Ts.get(2);
 boolean add(Type element) ajoute un élément à la fin de l’objet
ArrayList. Pour construire la liste Ts : [tata, toto, mimi], on écrira
donc : Ts.add(‘’tata’’);Ts.add(‘’toto’’);Ts.add(‘’mimi’’);
8
3. ArrayList(3)
 boolean add(int i, Type element) ajoute un élément à la position i
de l’objet ArrayList.
Ts.add(1,‘’mama’’); on obtient Ts : [tata, mama, toto, mimi],
 boolean addAll(ArrayList<Type> L) : ajoute tous les éléments de L
à la fin de l’objet ArrayList courant.
 Type set(int i, Type element) : remplace l’ancienne valeur qui était
dans la case i par element. Logiquement, i doit être inférieure à la
size() de l’ArrayList. :
 Type remove(int i) : supprime et retourne l’élément qui est
dans la case i.
 Type remove(Type element): supprime la première occurrence de
l’élément de valeur element2 ; si l’élé- ment est présent plusieurs
fois, il ne sera enlevé qu’une seule fois. Le contenu des cases est dé-
calé, et la longeur de l’ArrayList diminue de 1.
 …..
9
4. LinkedList (1)
 package java.util définit une classe, LinkedList permet de construire
des listes doublement chainées de différents types (Integer,
Double,…, Object).
 Un objet LisnkedList contient des valeurs d’un type donné. On doit
préciser ce type quand à la déclaration. Pour cela, on fait suivre le nom de
la classe LinkedList par le type des éléments, entre chevrons (< et >).
//Déclaration
LinkedList <String> Ls ; LinkedList <Integer> Lint;
LinkedList <Type> L;
//Création
Ls=new LinkedList <String>(); Lint= LinkedList <Integer>();
L=new LinkedList <Type>();

10
5. LinkedList (2)

 Les objets LinkedList possède en plus des mêmes méthodes de


ArrayList les méthodes suivantes:
 void addFirst(Object): Insère l'objet au début de la liste.
 void addLast(Object): Insère l'objet à la fin de la liste.
 Object getFirst(): Renvoyer le premier élément de la Liste.
 Object getLast(): Renvoyer le dernier élément de la liste.
 Object removeFirst(): Supprimer le premier élément de la
liste et renvoie l'élément qui est devenu le premier
 Object removeLast(): Supprimer le dernier élément de la liste
et renvoie l'élément qui est devenu le dernier

11

Vous aimerez peut-être aussi