• Aucun résultat trouvé

MASTER 2

N/A
N/A
Protected

Academic year: 2022

Partager "MASTER 2"

Copied!
3
0
0

Texte intégral

(1)

MASTER 2 ième année CMW Cours Java

1 Ph. CHOCHOIS

Les collections

Exemple introductif

Ecrivez les instructions à écrire dans un programme Java pour déclarer un tableau de chaînes de caractères de 3 éléments puis l’alimenter avec les chaînes suivantes :

- Chocolat - France - Voiture

2

…/…

String tabMots [] ; tabMots = new String[3];

tabMots[0]= “Chocolat“ ; tabMots[1]= “France“ ; tabMots[2]= “Voiture“ ;

…/…

Exemple introductif

Réfléchissez à la façon d’ajouter un 4ièmeélément et de mettre le mot

« Dormir » dans la tableau.

- On peut « vider » le tableau dans un autre…

- On peut prévoir un tableau très grand… mais problème d’insertion Ces solutions sont peu satisfaisantes !

Nous allons voir un nouveau concept qui permet de remédier à ces inconvénients:

- LES COLLECTIONS .

3

Les collections: généralités

- Les tableaux sont inadéquats pour gérer une quantité importante d’informations quand leur nombre n’est pas connu à l’avance (Exemple : Le nombre de messages dans un sujet d’un forum ou un nombre d’étudiants dans une classe )

- Certaines opérations peuvent être compliquées (exemple : Insertion dans un tableau).

Les collections permettent de stocker un nombre variable de valeurs et fournissent des services qui facilitent la programmation.

Java fournit des types permettant de gérer les collections. Il existe de nombreux types adaptés à des besoins particuliers (exemple : Vector, TreeSet, HashMap, LinkedList…).

Nous étudierons et utiliserons un de ces types : les « ArrayList » .

4

La classe « ArrayList »

Jusqu’à la version 1.5 de Java, une collection gère uniquement des objets.

Elle ne peut pas gérer des données simples (int, char…).

Jusqu’à la version 1.5 de Java, on ne définit pas le type des valeurs stockées dans une collection (puisque le type est défini par défaut comme étant un objet).

Remarque 1: il est donc possible de stocker des objets de différents types dans une même collection. Les collections hétérogènes sont utiles dans de rares occasions. Cela n’est pas recommandé et traduit souvent une erreur de conception.

.

5

Utilisation d’une collection en Java

Une collection (ArrayList) est un objet. Avant de l’utiliser, il faut donc le déclarer et le créer.

Déclaration:

Création (ou instanciation):

Déclaration et instanciation:

La collection est créée mais elle ne contient pas d’objet ! Quelle est sa taille ?

.

6 ArrayList maListe;

maListe = new ArrayList();

ArrayList maListe = new ArrayList();

(2)

Ajout d’objets dans une collection

Pour être ajouté à la collection, l’objet doit exister.

Exemples:

7 // Exemple 1

maListe.add(“Voiture“) ; // Exemple 2

maListe.add(new Commande (10, "CD", 0.99, 10)) ; // Exemple 3

Commande maCommande = new Commande (10, "CD", 0.99, 10) ; maListe.add(maCommande) ;

// Exemple 4

maListe.add(new Integer(5)) ;

Utilisation d’un objet d’une collection alimentée

Pour travailler sur un objet contenu dans une collection, il faut:

1. Extraire l’objet de la collection 2. Caster l’objet (indiquer de quel type il est) 3. .

8 // Exemple 1: i est le 4ièmeobjet de la collection Integer i = (Integer)desPoints.get(3);

// Exemple 2: nom est le 2ièmenom de la collection de noms String nom = (String)desNoms.get(1);

// Exemple 3: j est le 1erjouet de la collection Jouet j = (Jouet)desJouets.get(0);

// Exemple 4

Object obj1 = desJouets.get(0);

// obj1 est un jouet qui est de type « Objet » et pas de // type « Jouet ». Il ne peut pas bénéficier des méthodes // d’un jouet.

Obtenir le nombre d’éléments d’une collection

Méthode « size » .

9 // obtient le nombre d'éléments dans la collection (un int) int n = desJouets.size();

Supprimer un élément d’une collection

Méthode « remove » .

10 // supprime de la collection l'élément situé à la position 0 desJouets.remove(0);

Parcourir une collection avec une boucle

Exemple: Afficher les numéros de commande

Ou .

11 int num;

Commande cmd;

for (int i = 0 ; i < maListe.size() ; i++){

cmd = (Commande)maListe.get(i);

num = cmd.getNumero();

System.out.println(num);

}

for (int i = 0 ; i < maListe.size() ; i++){

System.out.println(((Commande)maListe.get(i)).getNumero());

}

La documentation Java…

La classe « ArrayList » est une classe de la bibliothèque java.

Elle est définie dans le package « java.util ».

Pour utiliser cette classe, il faut donc importer ce package.

Consultez la documentation Java de la classe ArrayList…

Constructor Summary ArrayList()

Constructs an empty list with an initial capacity of ten.

ArrayList(int initialCapacity)

Constructs an empty list with the specified initial capacity.

.

12 import java.util.* ;

(3)

La documentation Java…

Method Summary

void add(int index, Object element)

Inserts the specified element at the specified position in this list.

boolean add(Object o)

Appends the specified element to the end of this list.

void clear()

Removes all of the elements from this list.

boolean contains(Object elem)

Returns true if this list contains the specified element.

Object get(int index)

Returns the element at the specified position in this list.

int indexOf(Object elem)

Searches for the first occurence of the given argument, testing for equality using the equals method.

boolean isEmpty()

Tests if this list has no elements.

Object remove(int index)

Removes the element at the specified position in this list.

Boolean remove(Object o) Removes a single instance of the specified element from this collection, if it is present

Object set(int index, Object element)

Replaces the element at the specified position in this list with the specified element.

int size()

Returns the number of elements in this list.

13

Exercice

a) En utilisant une collection, écrivez les instructions à écrire dans un programme Java pour déclarer une liste de chaînes de caractères de 2 éléments puis l’alimenter avec les chaînes suivantes :

•Chocolat

•France

b) Ajoutez un 3ièmeélément et mettre le mot « Dormir » dans le tableau.

.

14 ArrayList desMots ;

desMots = new ArrayList();

desMots.add(“Chocolat“) ; desMots.add(“France“) ;

ArrayList desMots ; desMots = new ArrayList();

desMots.add(“Chocolat“) ; desMots.add(“France“) ; desMots.add(“Dormir“) ;

La classe « ArrayList »

A partir de la version 1.6, on peut stocker des types simples dans une collection.

Exemple:

15 ArrayList maListe=new ArrayList();

maListe.add(1);

maListe.add('c');

A partir de la version 1.6 de Java, on peut définir des collections typées.

Utilisation d’une collection en Java

Une collection (ArrayList) est un objet. Avant de l’utiliser, il faut donc le déclarer et le créer.

Déclaration:

Création (ou instanciation):

Déclaration et instanciation:

.

16 ArrayList<Crayon> mesCrayons;

mesCrayons = new ArrayList<Crayon>();

ArrayList<Crayon> mesCrayons = new ArrayList<Crayon>();

Utilisation d’un objet d’une collection alimentée

Pour travailler sur un objet contenu dans une collection typée, il faut juste extraire l’objet de la collection avec la méthode « get » et l’utiliser selon le type adéquat.

17 // Exemple 1: i est le 4ièmeobjet de la collection Integer i = desPoints.get(3);

// Exemple 2: nom est le 2ièmenom de la collection de noms String nom = desNoms.get(1);

// Exemple 3: j est le 1erjouet de la collection Jouet j = desJouets.get(0);

// Exemple 4

Object obj1 = desJouets.get(0);

// obj1 est un jouet qui est de type « Objet » et pas de // type « Jouet ». Il ne peut pas bénéficier des méthodes // d’un jouet.

Parcourir une collection typée avec une boucle

Exemple: Afficher les numéros de commande

Ou .

18 int num;

Commande cmd;

for (int i = 0 ; i < maListe.size() ; i++){

cmd = maListe.get(i);

num = cmd.getNumero();

System.out.println(num);

}

for (int i = 0 ; i < maListe.size() ; i++){

System.out.println((maListe.get(i)).getNumero());

}

Références

Documents relatifs

• Le traitement de liste est souvent réalisé à l’aide de fonctions récursives (il n’existe pas d’équivalent fonctionnel direct des boucles). • Calcul de la longueur

chaîne de caractères = suite d’octets Lecture fichier texte : lignes stockées dans une chaîne de caractères.. Lecture fichier binaire : données stockées dans une chaîne

chaîne de caractères = suite d’octets Lecture fichier texte : lignes stockées dans une chaîne de caractères.. Lecture fichier binaire : données stockées dans une chaîne

Lecture fichier binaire : données stockées dans une chaîne de caractères... 3.2 str : chaîne d’octets (pas

8-10 : la méthode .extend() ajoute en bout de liste tous les éléments de la liste passée en argument ; liste a alors trois éléments?. Dans les exemples qui suivent, on crée de

Certains langages de programmation définissent un type pour les représenter, comme par exemple le langage Java avec le type String , mais d’autres langages, comme le langage C,

G est abélien si et seulement si toutes ses représentations irréductibles sont de degré 1..

Trouver tous les entiers naturels strictement positifs, pas nécessairement distincts, a, b, c et d d’une part et w, x, y et z d’autre part tels que la somme