Accueil
Java Standard Edition
Java EE 5
Visual Basic .Net 2005
Visual C++ .Net 2005
Visual C# .Net 2005
Cours ASP .Net 2.0
Postgresql
Linux
Visual Studio 2008
ASP 3.0 Classique
Cours Javascript - DOM - DHTML
Cours Ajax
VBA
Assembleur
Perl
Membres
L'auteur du site
Nouveautés sur le site
Contacts
Plan du site
Exécution d'un programme
Les archives Jar
Les classes abstraites
Les interfaces
Les tableaux
La généricité
Les énumérations
Les classes internes
Classes anonymes et internes locales
Les threads: généralités
Les threads(2): synchronisation
E/S(1):InputStream et OutputStream
E/S(2):FileInputStream et FileOutputStream
E/S(3):Reader et Writer
E/S(4):FilterInputStream et FilterOutputStream
E/S(5):Les filtres d'octets: PrintStream
E/S(6):Les filtres d'octets: DataInputStream et DataOutputStream
E/S(7):Les filtres d'octets: BufferedInputStream et BufferedOutputStream
E/S(8):Flux de caractères: PrintWriter
E/S(9):Flux de caractères: FilterReader et FilterWriter
E/S(10):Flux de caractères: InputStreamReader, OutputStreamWriter, StreamDecoder, StreamEncoder
E/S(11):Flux de caractères: BufferedReader et BufferedWriter
E/S(12):Flux de caractères: FileReader et FileWriter
La classe String (java.lang)
Les collections: L'interface Collection(java.lang)
Les collections(2): L'interface List(java.util)
Les collections(3): AbstractCollection(java.util)
Les collections(4): AbstractList(java.util)
La bibliothèque Swing en Java
Les bases de données en Java
JDBC ( Java Database Connectivity )
Les interfaces graphiques
Les fichiers de configuration en Java
INSTALLATION JAVA EE 5, JRE 6, ECLIPSE, TOMCAT, ETC SOUS LINUX
INSTALLATION JAVA EE 5, JRE 6, ECLIPSE, TOMCAT, ETC SOUS WINDOWS
Les applications Web en java
Les filtres Java (javax.servlet.Filter)
I Généralités
I.1 Le formulaire principal
I.2 Les objets créés par Visual
I.3 Les variables références
I.4 Le garbage collector
II Créer évènements
II.1 Rappel évènements
II.2 Procédure à suivre
II.2.1 Créer son EventArgs
II.2.2 Créer EmetEvent
II.2.3 Déclarations autres
I Généralités
I.1 Applications winforms
I.2 Applications MFC
I.3 Objets managés ou pas
I.4 Objets non managés
I.5 Objets managés - handle
I.6 Le top-level ^
II Créer évènements
II.1 Rappel évènements
II.2 Procédure à suivre
II.2.1 Créer son EventArgs
II.2.2 Créer EmetEvent
II.2.3 Déclarations autres
I Généralités
I.1 Puissant et Accessible
I.2 Créer ses classes
II Créer évènements
II.1 Rappel évènements
II.2 Procédure à suivre
III Les services Windows
IV Le .net remoting
V Communication Tcp avec TcpClient et TcpListener
II.2.1 Créer son EventArgs
II.2.2 Créer EmetEvent
II.2.3 Déclarations autres
I Généralités
I.1 Un EDI formidable
I.2 Inclure C# ou VB
I.3 L'objet Response
I.4 Les évènements
II ASP .net et les bdd
II.1 Essayer plusieurs fois la requête
I 2.1 Fichiers distincts
I.2.2 Avec la balise script
I.2.3 Inclure réellement
I.2.4 Avec Response.Write()
I.3.1 La méthode Response.Redirect()
I.4.1 Résoudre problème post
Installation Postgre Linux
Cours Postgresql
Le Shell Unix( Linux, Ubuntu)
Les scripts C-Shell
Programmation système Unix
Reseau Linux
Les iptables
Windows Presentation Foundation(WPF)
Le Framework 3.0
Windows Workflow Foundation(WF)
ASP 3.0 Classique
Cours Javascript - DOM - DHTML
Chat Ajax
VBA Excel 2003
Assembleur
Perl
Inscription
Liste membres
Livre d'or
Forum
Accueil
>
Java Standard Edition
>
Les collections(2): L'interface List(java.util)
____________________________________________________________________________________________________
Connexion
Les collections(2): L'interface List(java.util)
Sommaire :
I) Généralités
II) Les méthodes de List (java.util)
III) L'interface ListIterator(java.util)
I) Généralités
public interface List<E> extends Collection<E>
"An ordered collection (also known as a sequence). The user of this interface has precise control over where in the list each element is inserted. The user can access elements by their integer index (position in the list), and search for elements in the list.
Unlike sets, lists typically allow duplicate elements. More formally, lists typically allow pairs of elements e1 and e2 such that e1.equals(e2), and they typically allow multiple null elements if they allow null elements at all. It is not inconceivable that someone might wish to implement a list that prohibits duplicates, by throwing runtime exceptions when the user attempts to insert them, but we expect this usage to be rare."
Traduction personnelle sommaire:
Une collection ordonnée( aussi appelée séquence). L'utilisateur de cette interface a le contrôle précis de où, dans la liste, chaque élément est inséré. L'utilisateur peut accéder aux éléments par leur index entier( position dans la liste), et rechercher des éléments dans la liste.
Au contraire des Sets, les listes permettent typiquement les doublons. Plus formellement, les listes permettent typiquement des paires d'éléments e1 et e2 tel que e1.equals(e2), et elles permettent typiquement de multiples éléments null( si elles autorisent l'élément null). Ce n'est pas inconcevable que quelqu'un peut souhaiter implémenter une liste qui ne permet pas les doublons, en déclenchant des exceptions à l'exécution quand l'utilisateur essaye de les insérer, mais nous espérons que cet usage reste rare.
Fin traduction
List est d'abord un type de Collection( car elle étend l'interface Collection), et elle est générique. Elle apporte des exigences, en ce qui concerne l'accès direct à un élément de la liste( de par son numéro de place dans la liste).
Attention, "ordonné" signifie que chaque élément de la liste peut être désigné par un index, qui est sa place dans la liste. Cela ne veut pas dire que tous les éléments soient classés dans un certain ordre.
En résumé, une liste est donc caractérisée par la possibilité d'accéder à ses éléments directement par leur index dans la liste, et donc la possibilité de retenir la place d'un élément dans la liste. Cela veut dire aussi un accès direct à un endroit précis de la liste. La méthode permettant d'accèder à un index précis existe toujours(get). Mais les méthodes permettant de modifier la liste à un index précis(set), ou d'insérer un élément à un endroit précis(add) sont optionnelles.
Les listes autorisent les doublons(ce qui les différencie des Sets), mais on n'interdit pas que certaines listes interdisent les doublons( par des exceptions déclenchées).
II) Les méthodes de List (java.util)
Regardons les méthodes caractéristiques:
E get(int index);
Retourne l'élément à la position index de la liste. Déclenche IndexOutOfBoundsException(java.lang) si l'index est hors limites(<0 ou >=size() ).
E set(int index, E element); (méthode optionnelle)
Remplace l'élément à l'index spécifié, par l'élément passé en paramètre. Déclenche UnsupportedOperationException(java.lang), si cette méthode n'est pas supportée par la liste.
Remarquons que cette méthode est optionnelle, de même que add qui permet d'insérer un élément à un index précis.
void add(int index, E element); (méthode optionnelle)
Permet d'insérer l'élément à l'index voulu. Décale l'élément qui était présent auparavant à l'index, ainsi que tous les éléments suivants( ajoute 1 à leur index). Notez que cette méthode est optionnelle.
boolean addAll(int index, Collection<? extends E> c); (méthode optionnelle)
Insère tous les éléments de la liste spécifiée, dans notre liste, à partir de l'index. Décale les anciens éléments.
Les nouveaux éléments seront ajoutés dans l'ordre donné par l'iterator de la collection.
E remove(int index); (méthode optionnelle)
Supprime l'élément à l'index spécifié. Décale les éléments suivants vers la gauche(leur index diminue de 1).
Retourne l'élément supprimé.
int indexOf(Object o);
Retourne l'index, dans la liste, de la première occurrence de l'élément en question. Retourne -1 s'il n'y figure pas. o peut valoir null, dans ce cas, on recherche le premier null.
int lastIndexOf(Object o);
Comme indexOf, mais retourne l'index de la dernière occurence.
List<E> subList(int fromIndex, int toIndex);
Retourne une sous-liste de notre liste, à partir de l'index fromIndex inclus, jusqu'à l'index toIndex exclus.
La liste retournée est associée à notre liste, ce qui implique que tout changement non-structurel dans la liste retournée, se reflète dans notre liste, et réciproquement. La sous-liste supporte toutes les opérations optionnelles supportées par notre liste.
Pour mieux comprendre, prenons l'exemple de l'implémentation de cette méthode par la classe (java.util.)AbstractList(qui hérite de List). Dans ce cas, subList crée un nouvel objet de la classe SubList. Cette classe SubList n'est pas publique, et se trouve dans le même fichier que AbstractList. Elle a des attributs privés qui nous éclairent: "private AbstractList<E> l", qui est la liste mère. "private int offset", qui est l'index dans la liste mère, de début de la sous-liste, "private int size" est la taille de la sous-liste. SubList hérite de AbstractList<E>, et redéfinit un certain nombre de méthodes. Par exemple la méthode set( "public E set(int index, E element)"), qui va faire un "l.set(index+offset, element)", c'est-à-dire qui va faire un set sur la liste mère. On en conclut que pour SubList, aucune donnée de la sous-liste n'est dans l'objet sous-liste, ce sont directement les données de la liste mère.
Le sens de la sous-liste retournée par List devient indéfini, si la liste mère est modifiée dans sa structure, d'une autre façon que par la sous-liste.
ListIterator<E> listIterator()
Retourne un (java.util.)ListIterator<E>, sur les éléments de la liste. Nous verrons au prochain paragraphe ce qu'est un ListIterator
ListIterator<E> listIterator(int index)
Retourne un (java.util.)ListIterator<E>, sur les éléments de la liste à partir de l'index spécifié.
III) L'interface ListIterator(java.util)
public interface ListIterator<E> extends Iterator<E>
Outre les méthodes hasNext(), next(), et Remove(), ListIterator ajoute un certain nombre de méthodes, qui tiennent comptent des spécificités de la collection.
A noter que les méthodes de modification de la liste, set et add, sont optionnelles.
boolean hasPrevious();
Retourne vrai si la liste a encore un élément si on la parcourt en sens inverse.
E previous();
Retourne l'élément précédent de la liste. Ou déclenche l'exception NoSuchElementException(java.util), s'il n'y en a pas.
int nextIndex();
Retourne l'index de l'élément suivant(si on appelait next() ), ou la taille de la liste(size) si c'est le dernier élément.
int previousIndex();
Retourne l'index de l'élément précédent(si on appelait previous() ), ou -1 si on est au début de la liste.
void set(E e); (méthode optionnelle)
Permet de remplacer la valeur de l'élément courant pour l'iterateur, c'est-à-dire l'élément obtenu après le dernier appel à next() ou à previous(). Ne pas avoir appelé remove ou add après le next() ou previous().
Retourne UnsupportedOperationException, si cette méthode n'est pas supportée.
void add(E e); (méthode optionnelle)
Insère l'élément spécifié, après l'élément courant(c'est-à-dire l'élément obtenu après le dernier appel à next() ou à previous() ).
RETOUR HAUT