//Voici une série d'exemples d'utilisation de l'API Java. Dans la suite j'utiliserai **MyObject** dès que j'ai besoin d'un objet quelconque.// =====ArrayList===== ====Parcours==== //Voici trois manières de parcourir un [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/ArrayList.html|ArrayList]].// Je choisis de définir une [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/ArrayList.html|ArrayList]] ne contenant que des objets de type [[esi:MyObject|MyObject]]. * Pour ce faire il est nécessaire d'avoir ce type d'objet, il est définit dans la classe [[esi:myobject|MyObject.java]] **ou** * si vous préférez, vous pouvez créer un [[sunUtil>ArrayList.html|ArrayList]] contenant d'autres objets; //String//, ou autre ... à votre meilleure convenance. import java.util.ArrayList ; import java.util.Iterator ; public class ArrayListTest { public static void main ( String[] args ) { ArrayList al ; al = new ArrayList() ; al.add( new MyObject("Un") ) ; al.add( new MyObject("Deux") ) ; al.add( new MyObject("Trois") ) ; al.add( new MyObject("Quatre") ) ; al.add( new MyObject("Cinq") ) ; al.add( new MyObject("Six") ) ; // Méthode 1 // Aucune connaissance particulière d'ArrayList // a part les méthodes get et size for (int i=0 ; i i = al.iterator() ; i.hasNext() ; ) { MyObject mo = i.next() ; System.out.println( mo ); } // end - for // Méthode 3 // API 1.5 for ( MyObject mo : al ) System.out.println( mo ); } // end - main } // end - class Important la //enhanced loop// (méthode 3) permet de parcourir un //Arraylist// mais ne permet pas supprimer un élement lors du parcours ... les deux autres méthodes oui. Dans le premier cas, il suffit de faire al.remove(i) Dans le second, l'itérateur (//Iterator//) permet de supprimer l'élément en cours, c'est-à-dire de faire i.remove() ====Egalité==== //Voici une manière de tester le bon fonctionnement de la méthode **equals** de [[sunUtil>ArrayList.html|ArrayList]]. // import java.util.List ; import java.util.ArrayList ; public class ArrayListEqualsTest { public static void main ( String[] args ) { List l1 = new ArrayList() ; List l2 = new ArrayList() ; MyObject mo1 = new MyObject("Un") ; MyObject mo2 = new MyObject("Deux") ; l1.add(mo1) ; l1.add(mo2) ; l2.add(mo1) ; l2.add(mo2) ; System.out.println("l1 = l2 ? : " + l1.equals(l2) ); } // end - main } Evidemment, si des objets identiques n'ont pas la même référence, il faut écrire correctement la méthode //equals// de la classe [[esi:myobject|MyObject]]. Et l'on pourra écrire : ... MyObject mo1 = new MyObject("Un") ; MyObject mo1_bis = new MyObject("Un") ; ... l1.add(mo1) ; l2.add(mo1_bis) ; ... Les deux listes seront à nouveau égales ... =====GregorianCalendar===== Utilisation d'un **[[http://java.sun.com/j2se/1.5.0/docs/api/java/util/GregorianCalendar.html|GregorainCalendar]] ** (qui hérite de [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html|Calendar]]). //Il faut différencier l'objet Date de l'objet Calendar. Date est plutôt vu comme une date absolue, un moment dans le temps. Tandis que Calendar est vu comme un moment interprêté dans un certain calendrier (Grégorien, Julien, ...).// Si l'on veut obtenir une Date correspondant au //14 février 2006//, on écrira ... //extrait de code Date saintValentin ; GregorianCalendar gc ; gc = new GregorianCalendar(2006,1,14) ; // month is 0-based, 0=January, 1=February, ... saintValentin = gc.getTIme() ; * Notons aussi que le constructeur de Date() sans paramètre crée une date correspondant à //maintenant//. =====equals===== Pour être en conformité avec Java, une méthode equals() doit ressembler à ceci class MyObject { public boolean equals(Object o) { if ( !(o instanceof MyObject) ) return false; MyObject autre = (MyObject) o; // Comparaison des champs de this et autre } } =====Demandes d'exemples===== * Est-ce que vous pouvez mettre un exemple de matches svp. Merci * Du genre de celui qui se trouve [[esi:javaexempleselementaires#matches_substring|là]] ;-)