Interface Collection en Java

Interface Collection

Caractéristiques : Représente un ensemble d'objets de types quelconques, non ordonné, sans index, sans doublons

Méthodes

boolean add(Object obj) // Ajoute un objet
boolean addAll(Collection c) // Ajoute tous les objets d'une autre collection
void clear() // Vide la collection
boolean contains(Object o) // Vérifie si l'objet est présent
boolean containsAll(Collection c) // Vérifie si tous les objets de c sont présents
boolean equals(Object o) // Compare cette collection avec un objet
boolean isEmpty() // Vérifie si la collection est vide
boolean remove(Object c) // Supprime un objet
boolean removeAll(Collection c) // Supprime tous les objets présents dans c
boolean retainAll(Collection c) // Garde uniquement les objets communs avec c
Iterator<E> iterator() // Retourne un itérateur pour les éléments
int size() // Retourne le nombre d'éléments
Object[] toArray() // Convertit la collection en tableau


Exemples

Exemple 1 : Collection de chaînes de caractères

package com.example;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * Démonstration des opérations sur les collections
 *
 * @since 2023-01-15
 */
public class ExempleCollection {
    public static void main(String[] args) {
        Collection<String> collection = new ArrayList<>();
        // Ajout d'éléments
        collection.add("chat");
        collection.add("chien");
        collection.add("chat");
        collection.add("chien");
        System.out.println(collection);
        // Suppression
        collection.remove("chien");
        System.out.println(collection);

        System.out.println("====================================");
        // Parcours avec boucle for-each
        for (String element : collection) {
            System.out.println(element);
        }
        System.out.println("====================================");
        // Parcours avec itérateur
        Iterator<String> iterateur = collection.iterator();
        while (iterateur.hasNext()) {
            System.out.println(iterateur.next());
            // Suppression avec l'itérateur pendant le parcours
            iterateur.remove();
        }
        System.out.println(collection);
        // Vérification de présence
        System.out.println(collection.contains("chien"));
        System.out.println(collection.contains("poulet"));
    }
}



Exemple 2 : Collection d'objets personnalisés

package com.example;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * Manipulation de collections d'objets personnalisés
 *
 * @since 2023-01-15
 */
public class ExempleCollectionPersonnalisee {
    public static void main(String[] args) {
        Collection<Personne> collection = new ArrayList<>();

        Personne p1 = new Personne("Martin", 25);
        Personne p2 = new Personne("Sophie", 30);
        Personne p3 = new Personne("Jean", 28);
        collection.add(p1);
        collection.add(p2);
        collection.add(p3);
        collection.add(p3);
        System.out.println(collection.size());
        System.out.println(collection);
        
        // La suppression retire l'élément de la collection mais pas de la mémoire
        collection.remove(p3);
        System.out.println(collection.size());
        System.out.println(collection);

        
        // Parcours avec boucle for-each
        for (Personne p : collection) {
            System.out.println(p);
        }

        // Parcours avec itérateur
        Iterator<Personne> it = collection.iterator();
        while (it.hasNext()) {
            Personne p = it.next();
            System.out.println(p);
        }

        System.out.println(collection.contains(p2));


    }
}

class Personne {
    String nom;
    Integer age;

    public Personne() {
    }

    public Personne(String nom, Integer age) {
        this.nom = nom;
        this.age = age;
    }

    public String getNom() {
        return nom;
    }

    public Integer getAge() {
        return age;
    }

    public void setNom(String nom) {
        this.nom = nom;
    }

    @Override
    public String toString() {
        return "Personne{" +
                "nom='" + nom + '\'' +
                ", age=" + age +
                '}';
    }
}


Étiquettes: Java collection interface Programmation orientée objet

Publié le 6 juillet à 00h13