Rappels Java.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Chap. 4 Recherche en Table
Cours n° 7 Standard Template Library II.
Cours n° 6 Standard Template Library I.
Portée des variables VBA & Excel
Sensibilisation à l’Algorithmique
Au programme du jour …. Un peu plus de structures de données
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 MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
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 »
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
JAV - TD 6 Structures de données JAVA
Chap. 1 Structures séquentielles : listes linéaires
Algorithme et programmation
Développement d’applications web
Classes locales classes définies à l'intérieur d'un bloc de code,
Structures collectives en Java
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.
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
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
Les algorithmes: complexité et notation asymptotique
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++
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Chapitre 21 Collections Partie I Introduction Une collection : est un objet qui regroupe multiple éléments dans une unité. Une collection est.
Classes abstraites et Interfaces
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
Complément Le diagramme des classes
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
La Saint-Valentin Par Matt Maxwell.
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Une nouvelle structure de données : les tableaux
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
Programmation concurrente
Notre calendrier français MARS 2014
Vector, Iterator, LinkedList
Indexation et Recherche d'Information
COURS DE PROGRAMMATION ORIENTEE OBJET :
Standard Template Library
Java, les objets : tout de suite ! Rassembler, grouper les objets
Les Algorithmes de Tri Introduction Tri par Sélection
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.
Structures de données IFT-2000
Structures des données
Chapitre 21 Collections Partie II Algorithmes  Algorithmes sur des List : sort binarySearch reverse shuffle fill copy  Algorithmes sur des Collections.
J201 (JOC) Java Avancé juin 2007 ~ Brigitte Groléas ~
Objectifs À la fin de ce cours, vous serez capables de :
CALENDRIER-PLAYBOY 2020.
COURS DE PROGRAMMATION ORIENTEE OBJET :
LES PILES ET FILES.
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Tutorat en bio-informatique
Strings et Tableaux en Java
Iterator Design Pattern Alessandro Soro Sylvain Giroux.
1 Listes des méthodes de la classe string, et exemples.
Chapitre 21 Collections partie III Set Une collection qui contient des éléments uniques. Deux implémentation :  HashSet : stock les éléments.
JAVA et l'orientation objet Jean-Jacques LE COZ. Encapsulation L'encapsulation est le concept de masquer l'implémentation de la classe De ne permettre.
Collections. POO-L3 H. Fauconnier2 Collections  types de données interfaces implémentations algorithmes  Interfaces:
Transcription de la présentation:

Rappels Java

Les tableaux Array sont des exemples d’implémentation d’une collection Les collections Une collection est un objet qui regroupe de multiples éléments en une seule unité. exemples: collection de joueurs collection d’objets d’art Les tableaux Array sont des exemples d’implémentation d’une collection La Classe Vector en est une autre

Autour des collections Interfaces Implémentation Manipulation / Algorithmes

Hiérarchie d’Interfaces: http://java.sun.com/docs/

{♣,☼,,,,} [☼;;;; ☼;;]           6 

Interface List Une collection ordonnée (connue aussi sous le nom séquence). L’utilisateur 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.

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);

Interface List int indexOf(Object o); //première occurrence // 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); }

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

Représente un ensemble dans le sens mathématique Interface Set: Depuis java 1.2 public interface Set extends Collection Représente un ensemble dans le sens mathématique « Collection d’ojets distincts, non ordonnés » Implémentations HashSet, TreeSet

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();

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[]); }

Implémentations HashSet TreeSet 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

Implémentations LinkedHashSet

Implémentations import java.util.*; public class TrouveDoublons { public static void main(String args[]) { Set s = new HashSet(); for (int i=0; i<args.length; i++){ if (!s.add(args[i])) System.out.println("Doublon :" + args[i]); } System.out.println(s.size()+" mots différents : "+s); }

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

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)

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);

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

Interface Enumeration boolean hasMoreElements() Object nextElement() Implémentation: public class StringTokenizer implements Enumeration

Différent d’un tableau Vector Comme un tableau array Contient des éléments accessibles par leur indice Java 1. peux utilisée dans les programmes actuels Différent d’un tableau Taille variable Contenu hétérogène /!\ collection d’objets

Vector Constructeurs Méthodes Vector() Vector(Collection c) … add(int index, Object element) add(Object o) addAll(Collection c) ajout à la fin dans l’ordre dans le quel ses éléments sont rendu par l’ «Iterator» de la collection

Vector clear() efface tous les éléments du vecteur boolean contains(Object elem) containsAll(Collection c) Object elementAt(int index) Enumeration elements() int indexOf(Object elem) int indexOf(Object elem, int index) boolean isEmpty() Object remove(int index) size() ……………………….

(similaire à la classe Arrays) fournit des méthodes pour : 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)

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.

Iterator (Itérateur) Un itérateur est un objet permettant de parcourir en séquence les éléments d’une 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( )) ;

Iterator Avantages Peut renvoyer un itérateur: 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 l’une des deux interfaces List et Set

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

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

MAP (associations) Cas d’utilisation: Encapsulation: fabriquer des liens entre objet sans modifier ces derniers Multiensembles: Map (élément, nombre d’occurences)

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

Faire référence aux collections en utilisant les interfaces: 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