Structures collectives en Java

Slides:



Advertisements
Présentations similaires
Structures de données avancées : Principales structures de données
Advertisements

Cours n° 6 Standard Template Library I.
Sensibilisation à l’Algorithmique
Au programme du jour …. Un peu plus de structures de données
Introduction à l’Algorithmique
Sensibilisation à l’Algorithmique et structure de données
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Cours n° 9 Conception et Programmation à Objets
Cours n° 8 Conception et Programmation à Objets
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
La programmation générique avec la STL EIUMLV - Informatique et Réseaux 99 Benoît ROMAND.
Approfondissement du langage
(Classes prédéfinies – API Java)
F. Voisin : Introduction à Java 1 Introduction à Java - les interfaces - Frédéric VOISIN FIIFO - « Remise à Niveau »
JAV - TD 6 Structures de données JAVA
Classes locales classes définies à l'intérieur d'un bloc de code,
IPA – Catherine Faron Zucke et Anne Marie Deryr. suite ordonnée d'éléments de taille variable ArrayList liste; liste = new ArrayList (); Ne peuvent contenir.
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Structures de données et algorithmes – C5 Maria-Iuliana Dascalu, PhD
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Les collections d'objets
Langage Oriente Objet Cours 4.
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
Bibliothèque standard du C++
Laboratoire d'Informatique de l’Université de Franche-Comté
Principes de programmation (suite)
Chapitre 21 Collections Partie I Introduction Une collection : est un objet qui regroupe multiple éléments dans une unité. Une collection est.
Standard Template Library (STL)
1 Objectifs de ce cours (I21) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Résumé du cours précédent.
Structures de données IFT-2000
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Rappels Java.
Introduction au paradigme orienté-objet (suite)
Présentation Structures de Données et TDA
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Vector, Iterator, LinkedList
Indexation et Recherche d'Information
Chapitre 9 Les sous-programmes.
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
Standard Template Library
CSI 1502 Principes fondamentaux de conception de logiciels
Java, les objets : tout de suite ! Rassembler, grouper les objets
Récursion IFT1025: Programmation 2 Jian-Yun Nie. Définition Le fait pour un programme ou une méthode de s'appeler lui-même. Par exemple –Définir la notion.
Structures de données IFT-2000
Cours 7 Divers et exceptions. Chapitre V Enumeration, tableaux, conversion de types, noms.
Objectifs À la fin de ce cours, vous serez capables de :
COURS DE PROGRAMMATION ORIENTEE OBJET :
LES PILES ET FILES.
Cours 7 Classes locales Clonage Divers: tableaux.
Templates, Containers et STL Structures de données de base tableau, liste chaînée file, pile, arbres, hashtable collection, ensemble 2 caractéristiques.
Tutorat en bio-informatique
ETNA – 1ème année Guillaume Belmas –
Strings et Tableaux en Java
Un visiteur… …venu d’ailleurs
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
C# de plus près.  Ce sont globalement les mêmes que Java : ◦ Int(int16, int32), float, double, bool,…  Les classe « communes » sont également les mêmes.
Iterator Design Pattern Alessandro Soro Sylvain Giroux.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Liste Une liste est une séquence d’éléments. Concept important: Chaque élément possède une position dans la liste. Notation: De quelles opérations a-t-on.
Structures de données avancées : Principales structures de fichiers
Généricité.
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Chapitre 21 Collections partie III Set Une collection qui contient des éléments uniques. Deux implémentation :  HashSet : stock les éléments.
CSI2510 Structures des Données et Algorithmes
CSI25101 Les structures de données de base (structures de données « concrètes ») trailer header Tableaux Listes chaînées l.
LES CLASSES ET LES OBJETS
Collections. POO-L3 H. Fauconnier2 Collections  types de données interfaces implémentations algorithmes  Interfaces:
Transcription de la présentation:

Structures collectives en Java Programmation Objet en Java Structures collectives en Java François Bonneville Laboratoire d'Informatique de l’Université de Franche-Comté

Motivations 1, 2, … plusieurs Importance en conception monôme, binôme, … polynôme point, segment, triangle, … polygone Importance en conception Relation entre classes «… est une collection de … » « … a pour composant une collection de … » Choisir la meilleure structure collective plus ou moins facile à mettre en œuvre permettant des traitements efficaces selon la taille (prévue) de la collection Structures collectives en Java - F.Bonneville

Définition d ’une collection Une collection regroupe plusieurs données de même nature Exemples : promotion d’étudiants, sac de billes, ... Une structure collective implante une collection plusieurs implantations possibles ordonnées ou non, avec ou sans doublons, ... accès, recherche, tris (algorithmes) plus ou moins efficaces Objectifs adapter la structure collective aux besoins de la collection ne pas re-programmer les traitements répétitifs classiques (affichage, saisie, recherche d’éléments, …) Structures collectives en Java - F.Bonneville

Structures collectives classiques Tableau accès par index recherche efficace si le tableau est trié (dichotomie) insertions et suppressions peu efficaces défaut majeur : nombre d’éléments borné Liste accès séquentiel : premier, suivant insertions et suppressions efficaces recherche lente, non efficace Tableau dynamique = tableau + liste type[] et Array interface List class ArrayList Structures collectives en Java - F.Bonneville

Paquetage java.util de Java 2 Interface Collection Interfaces Set et List Méthodes boolean add(Object o) boolean remove(Object o) … Plusieurs implantations tableau : ArrayList liste chaînée : LinkedList Algorithmes génériques : tri, maximum, copie ... méthodes statiques de Collection Structures collectives en Java - F.Bonneville

Collection : méthodes communes boolean add(Object) : ajouter un élément boolean addAll(Collection) : ajouter plusieurs éléments void clear() : tout supprimer boolean contains(Object) : test d'appartenance boolean containsAll(Collection) : appartenance collective boolean isEmpty() : test de l'absence d'éléments Iterator iterator() : pour le parcours (cf Iterator) boolean remove(Object) : retrait d'un élément boolean removeAll(Collection) : retrait de plusieurs éléments boolean retainAll(Collection) : intersection int size() : nombre d'éléments Object[] toArray() : transformation en tableau Object[] toArray(Object[] a) : tableau de même type que a Structures collectives en Java - F.Bonneville

Exemple : ajout d’éléments import java.util.*; public class MaCollection { static final int N = 25000; List listEntier = new ArrayList(); public static void main(String args[]) { MaCollection c = new MaCollection(); int i; for (i = 0; i < N; i++) { c.listEntier.add(new Integer(i)); } } } Structures collectives en Java - F.Bonneville

Caractéristiques des collections Ordonnées ou non Ordre sur les éléments ? voir tri Doublons autorisés ou non liste (List) : avec doubles ensemble (Set) : sans doubles Besoins d’accès indexé séquentiel, via Iterator interface Set interface SortedSet interface Collection public Iterator iterator() interface List ... get(int index) ... set(int index,Object o) Structures collectives en Java - F.Bonneville

Fonctionnalités des Listes Implantent l'interface List ArrayList Liste implantée dans un tableau accès immédiat à chaque élément ajout et suppression lourdes LinkedList accès aux éléments lourd ajout et suppression très efficaces permettent d'implanter les structures FIFO (file) et LIFO (pile) méthodes supplémentaires : addFirst(), addLast(), getFirst(), getLast(), removeFisrt(), removeLast() Structures collectives en Java - F.Bonneville

Fonctionnalités des ensembles Implantent l'interface Set Eléments non dupliqués HashSet table de hashage utiliser la méthode hashCode() accès très performant aux éléments TreeSet arbre binaire de recherche maintient l'ensemble trié en permanence méthodes supplémentaires first() (mini), last() (maxi), subSet(deb,fin), headSet(fin), tailSet(deb) Structures collectives en Java - F.Bonneville

Recherche d’un élément Méthode public boolean contains(Object o) interface Collection, redéfinie selon les sous-classes Utilise l’égalité entre objets égalité définie par boolean equals(Object o) par défaut (classe Object) : égalité de références à redéfinir dans chaque classe d’éléments Cas spéciaux doublons : recherche du premier ou de toutes les occurrences ? structures ordonnées : plus efficace, si les éléments sont comparables (voir tri) Structures collectives en Java - F.Bonneville

Tri d’une structure collective Algorithmes génériques Collections.sort(List l) Arrays.sort(Object[] a,…) Condition : collection d’éléments dont la classe définit des règles de comparaison en implémentant l’interface java.lang.Comparable implements Comparable en définissant la méthode de comparaison public int compareTo(Object o) a.compareTo(b) == 0 si a.equals(b) a.compareTo(b) < 0 pour a strictement inférieur à b a.compareTo(b) > 0 pour a strictement supérieur à b Structures collectives en Java - F.Bonneville

Généricité des algorithmes N'utiliser que les méthodes communes Déclaration Collection col = new ArrayList(); Parcours des éléments de la collection : Iterator accès indexé pas toujours disponible (méthode get()) utiliser la méthode Iterator iterator() se déplacer avec les méthodes next() et hasNext() exemple Collection col = new TreeSet(); Iterator i = col.iterator(); while (i.hasNext()) traiter ((transtypage)i.next()); Structures collectives en Java - F.Bonneville

Vue d'ensemble des collections Hiérarchie simplifiée Structures collectives en Java - F.Bonneville