La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les Collections en JAVA 1 Rappels Java. Les Collections en JAVA 2 Les collections Une collection est un objet qui regroupe de multiples éléments en une.

Présentations similaires


Présentation au sujet: "Les Collections en JAVA 1 Rappels Java. Les Collections en JAVA 2 Les collections Une collection est un objet qui regroupe de multiples éléments en une."— Transcription de la présentation:

1 Les Collections en JAVA 1 Rappels Java

2 Les Collections en JAVA 2 Les collections Une collection est un objet qui regroupe de multiples éléments en une seule unité. exemples: collection de joueurs collection dobjets dart Les tableaux Array sont des exemples dimplémentation dune collection La Classe Vector en est une autre

3 Les Collections en JAVA 3 Autour des collections Interfaces Implémentation Manipulation / Algorithmes

4 Les Collections en JAVA 4 Hiérarchie dInterfaces:

5 Les Collections en JAVA 5 {,,,,, } [ ; ; ; ; ; ; ] 6

6 Les Collections en JAVA 6 Interface List Une collection ordonnée (connue aussi sous le nom séquence ). Lutilisateur de cette interface a le contrôle sur les places ou sont inséré les éléments. Contrairement à un ensemble, une liste peut contenir des éléments dupliqués.

7 Les Collections en JAVA 7 Interface List public interface List extends Collection { // Positional Access Object get(int index); Object set(int index, Object element); void add(int index, Object element); Object remove(int index); boolean addAll(int index, Collection c);

8 Les Collections en JAVA 8 Interface List // recherche int indexOf(Object o); //première occurrence int lastIndexOf(Object o); // Itération ListIterator listIterator(); ListIterator listIterator(int index); //sous liste List subList(int from, int to); }

9 Les Collections en JAVA 9 List / implémentations ArrayList · maintenue dans un tableau redimensionnable · l'accès à un élément par son indice RAPIDE · insertion LENTE (surtout si elle a lieu au début de la liste) mais rapide en fin de liste LinkedList · formée de cellules liées par des références · insertion d'éléments RAPIDE · l'accès à un élément par son indice LENT Vector · similaire à ArrayList

10 Les Collections en JAVA 10 Interface Set: Depuis java 1.2 public interface Set extends Collection Représente un ensemble dans le sens mathématique « Collection dojets distincts, non ordonnés » Implémentations HashSet, HashSet TreeSet

11 Les Collections en JAVA 11 Interface Set public interface Set { // Opérations basiques int size(); boolean isEmpty(); boolean contains(Object element); boolean add(Object element); remove(Object element); Iterator iterator();

12 Les Collections en JAVA 12 Interface Set //autres opérations boolean containsAll(Collection c); boolean addAll(Collection c); boolean removeAll(Collection c); boolean retainAll(Collection c); void clear(); Object[] toArray(); Object[] toArray(Object a[]); }

13 Les Collections en JAVA 13 Implémentations HashSet implantation par table de hachage (Ordre aléatoire) ajout d'élément rapide test d'appartenance très rapides Les opérations add, remove, contains and size sont exécutées en un temps constant. TreeSet les éléments sont placés dans (un arbre de recherche binaire équilibré) les éléments sont triés Les opérations add, remove, contains and size sont relativement lentes

14 Les Collections en JAVA 14 Implémentations LinkedHashSet

15 Les Collections en JAVA 15 Implémentations import java.util.*; public class TrouveDoublons { public static void main(String args[]) { Set s = new HashSet(); for (int i=0; i

16 Les Collections en JAVA 16 java TrouveDoublons salut bonjour tcho tcho hello > Doublon : tcho > mots différents : [tcho, hello, salut, bonjour] Et si on utilise un TreeSet > Doublon : tcho > mots différents : [bonjour, hello, salut, tcho]

17 Les Collections en JAVA 17 Opération sur les ensembles [Set] s1.containsAll(s2): teste l'inclusion de s2 dans s1 s1.addAll(s2) union de s1 et s2 s1.retainAll(s2) intersection de s1 et s2 s1.removeAll(s2) différence entre s1 et s2 /!\ ne donne pas le même résultat que s2.removeAll(s1)

18 Les Collections en JAVA 18 Opération sur les ensembles [Set] Pour effectuer ces opérations sans destruction, utiliser un ensemble supplémentaire exemple : Set union = new HashSet(s1); union.add(s2);

19 Les Collections en JAVA 19 interface Enumeration Un objet implémentant cette interface génère une série déléments dune manière séquentielle La récupération des éléments de cette série seffectue par un appel nextElement() Exemple: imprimer les éléments dun vecteur v for (Enumeration e = v.elements() ; e.hasMoreElements() ;) { System.out.println(e.nextElement()); }

20 Les Collections en JAVA 20 Interface Enumeration boolean hasMoreElements()hasMoreElements Object nextElement()nextElement Implémentation: public class StringTokenizer implements Enumeration Enumeration

21 Les Collections en JAVA 21 Vector Comme un tableau array Contient des éléments accessibles par leur indice Java 1. peux utilisée dans les programmes actuels Différent dun tableau Taille variable Contenu hétérogène /!\ collection dobjets

22 Les Collections en JAVA 22 Vector Constructeurs Vector() Vector Vector(Collection c) VectorCollection … Méthodes add(int index, Object element) addObject add(Object o) addObject addAll(Collection c) ajout à la fin dans lordre dans le quel ses éléments sont rendu par l «Iterator» de la collection addAllCollection

23 Les Collections en JAVA 23 Vector clear() efface tous les éléments du vecteur clear boolean contains(Object elem)containsObject containsAll(Collection c) containsAllCollection Object elementAt(int index)elementAt Enumeration elements()elements int indexOf(Object elem)indexOfObject int indexOf(Object elem, int index)indexOfObject boolean isEmpty()isEmpty Object remove(int index)remove size() ………………………. size

24 Les Collections en JAVA 24 La classe Collection (similaire à la classe Arrays) fournit des méthodes pour : trier (sort) mélanger (schuffle) inverser l'ordre des éléments (reverse) remplir (fill)

25 Les Collections en JAVA 25 La classe Collection copier (copy) rechercher un élément (binarySearch) trouver les valeurs extrêmes (min, max) ! Certaines de ces méthodes ne peuvent être utilisées que sur des Collections de type liste.

26 Les Collections en JAVA 26 Iterator (Itérateur) Un itérateur est un objet permettant de parcourir en séquence les éléments dune collection(curseur) Semblable à Enumeration mais préférable Utile quand les éléments de la collection ne sont pas indicés. Ex: parcours d'une liste à l'aide d'un itérateur List ma_list =new ArrayList(); … for (Iterator iter = ma_list. iterator( ) ; i.hasNext( );) System.out.println (i.next( )) ;

27 Les Collections en JAVA 27 Iterator Avantages Permet de s'affranchir de toute numérotation et de parcourir une collection quelconque sans se soucier de la manière dont sont stockées les données Permet de supprimer un élément de la collection sous- jacente Peut renvoyer un itérateur: Toute classe implémentant lune des deux interfaces List et Set

28 Les Collections en JAVA 28 Iterator Les méthodes: boolean hasNext(); Object next(); void remove(); méthode utilisée après que litérateur ait accédé à un élément

29 Les Collections en JAVA 29 MAP (associations) Tableaux associatifs, Fonctions, Maps Structure pour mémoriser une collection de couples (clé-valeur) Mécanisme de « Fonction »: les clés sont uniques, une valeur peut-être associée à plusieurs clés. Une clé permet de retrouver rapidement la valeur associée

30 Les Collections en JAVA 30 MAP (associations) Cas dutilisation: Encapsulation: fabriquer des liens entre objet sans modifier ces derniers Multiensembles: Map (élément, nombre doccurences)

31 Les Collections en JAVA 31 Implémentations HashMap : implémentation usuelle Ordre aléatoire des clés Ajout, accès rapides TreeMap : clés de la Map triés Ajout lent LinkedHashMap

32 Les Collections en JAVA 32 Conseils: Faire référence aux collections en utilisant les interfaces: List ma_liste=new ArrayList(); Set mon_ens=new TreeSet(); Map ma_fonction=new HashMap(); Mais!! les classes concrètes sont souvent plus riches que les interfaces


Télécharger ppt "Les Collections en JAVA 1 Rappels Java. Les Collections en JAVA 2 Les collections Une collection est un objet qui regroupe de multiples éléments en une."

Présentations similaires


Annonces Google