© B. Carré Polytech’Lille 1
Programmation Par Objets
collections
package java.util
© B. Carré Polytech’Lille 2
Utilitaires et collections de Java 2
Le package java.util a été refondu en Java 2:
introduction d’une classe Arrays fournissant des utilitaires tels
que égalité, tri et recherche dans les tableaux (sous la forme de
méthodes statiques).
des interfaces de comparaison d’objets permettant des
opérations gériques de tri et de recherche.
introduction de nouvelles SD (ou révision d’anciennes):
List : distinction liste chainée (LinkedList)/liste contigüe
(ArrayList)
Set : ensembles
Map : tables dassociation
© B. Carré Polytech’Lille 3
Egalité de tableaux
égalité de contenu
boolean Arrays.equals(t1,t2) <=>
(t1.length == t2.length)
& (t1[i].equals(t2[i]), i<t1.length)
cette méthode est surchargée pour les types de base
la méthode equals de Object teste par défaut l’égali physique
(même instance au sens de ==).
il est possible de la redéfinir pour tester légalité logique d’objets.
Exemple : égalité de contenu entre chaînes définie dans String
© B. Carré Polytech’Lille 4
Egalité de tableaux : exemple
public class Ouvrage {
public boolean equals(Object o) {
return ( (o instanceof Ouvrage)
&& (auteur.equals(((Ouvrage)o).getAuteur()))
&& (titre.equals(((Ouvrage)o).getTitre())) );
} ...}
//le test de type peut se faire par
// traitement de l’exception ClassCastException
public class Ouvrage {
public boolean equals(Object o) {
try {
Ouvrage lautre = (Ouvrage)o;
return ((auteur.equals(lautre.getAuteur()))
&& (titre.equals(lautre.getTitre())));
} catch (ClassCastException ex) {return false;}
}...}
© B. Carré Polytech’Lille 5
Egalité de tableaux : exemple
Ouvrage t1[] = {
new Ouvrage("Germinal","Zola"),
new Ouvrage("C","Kernighan”),
new Ouvrage(“Java”,”Eckel”) };
Ouvrage t2[] = {
new Ouvrage(“Germinal”,”Zola”),
new Ouvrage(“C”,”Kernighan”),
new Ouvrage(“Java”,”Eckel”) };
t1==t2 est false
<=> t1.equals(t2) (égalité physique par défaut)
tout comme : t1[i]==t2[i]
Arrays.equals(t1,t2) est true galité logique)
tout comme t1[i].equals(t2[i]) (égalité logique itérée sur les
éléments)
1 / 24 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !