Top.Mail.Ru

Перечень уроков по Java

30, Интерфейс и методы интерфейса Collection

Рассмотрим основные методы интерфейса Collection и примеры использования методов.

Методы интерфейса Collection:

  • boolean add (E item): добавляет в коллекцию объект item. При удачном добавлении возвращает true, при неудачном – false
  • boolean addAll (Collection<?> c): добавляет все элементы указанной коллекции в эту коллекцию. При удачном добавлении возвращает true, при неудачном - false
  • void clear (): удаляет все элементы из коллекции
  • boolean contains (Object item): возвращает true, если объект item содержится в коллекции, иначе возвращает false
  • boolean containsAll (Collection<?> c): возвращает true, если указанная коллекция содержится в этой коллекции, иначе возвращает false
  • boolean retainAll(Collection<?>c) удаление из этой коллекции всех элементов  указанной коллекции с
  • boolean isEmpty (): возвращает true, если коллекция пуста, иначе возвращает false
  • boolean remove (Object item): возвращает true, если объект item удачно удален из коллекции, иначе возвращается false
  • int size (): возвращает число элементов в коллекции
  • Object[] toArray (): возвращает массив, содержащий все элементы коллекции
  • Iterator<E> iterator(): возвращает итератор коллекции

Пример использования основных методов интерфейса Collection.

Создадим экземпляр конкретного класса. Для примера возьмем ArrayList. По определению класс  ArrayList реализует  интерфейс Collection, поэтому он обладает всеми методами, которые имеются в базовом интерфейсе.

public static void main(String[] args) {

    // Создание коллекции

    Collection c1 = new ArrayList();

    // Добавление элементов в коллекцию

    c1.add(1);

    c1.add(2);

    c1.add(3);

    c1.add(4);

    c1.add(5);

    // Проход по коллекции возможен двумя способами, которые используют  цикл  типа foreach

    // 1 способ: вывод содержимого коллекции через foreach цикл

    System.out.println("Извлечение элементов коллекции с использованием foreach цикла");

    for(Object o :c1)

       System.out.println("Элемент : " + o);

        //System.out.println(o);

    // 2 способ: вывод содержимого коллекции через итератор

    System.out.println("Извлечение элементов используя итератор");

    // Метод итератора hasNext() возвращает true

    // если итератор может переместиться к следующему элементу

    for(Iterator it= c1.iterator(); it.hasNext();)

        {

        // Метод итератора next() перемещается на следующий элемент

        // и возвращает его значение, для которого выполняем приведение типа

        int x = (int) it.next();

        System.out.println("элемент:" + x);

        }

    // Определяем количество элементов в коллекции

    int n = c1.size();

    System.out.println("Количество элементов в коллекции: " + n);

    // Получение элемента коллекции в позиции 5

    int t=5;

    boolean flag = c1.contains(t);

    System.out.println("Коллекция содержит элемент " +t+ "? " + flag);

    // Проверка, коллекция пустая?

    flag = c1.isEmpty();

    System.out.println("Коллекция пустая? " + flag);

    // Удаление элемента

    // удаление коллекции в позиции t

    flag = c1.remove(t);

    System.out.println("Удален элемент " +t+ "? " + flag);

    // Определяем количество элементов в коллекции после удаления

    n = c1.size();

    System.out.println("число элементов в коллекции после удаления: " + n);

    System.out.println();

    // Преобразование коллекции в массив

    System.out.println("Преобразование коллекции в массив");

    Object[] a= c1.toArray();;

    for (int i=0; i<a.length; i++)

    System.out.println("элемент:" + a[i].toString());

    // Создаем коллекцию с2

    Collection c2 = new ArrayList();

    // Добавляем к нее элементы

    c2.add(6);

    c2.add(7);

    c2.add(8);

    // Вывод содержимого коллекции c2

    System.out.println("Содержимое коллекции c2");

    for(Object o :c2)

        System.out.println("элемент:"+ o);

    // Демонстрация групповых операций

    System.out.println("Групповые операции");

    // Проверка, содержит коллекция c1 все элементы c2?

    flag = c1.containsAll(c2);

    System.out.println("Коллекция c1 содержит все элементы из c2? "+flag);

    // Добавление в коллекцию c2 всех элементов c1

    System.out.println("Добавление всех элементов  c1  в c2");

    c2.addAll(c1);

     // Вывод содержимого коллекции c2

    System.out.println("Содержимое коллекции c2");

    for(Object o : c2) {

        System.out.println("элемент:" + o);

    }

    // Проверка, содержит коллекция c2 все элементы c1?

    flag = c2.containsAll(c1);

    System.out.println("Коллекция c2 содержит все элементы из c1? "+flag);

    // Удаление элемента

    // удаление 

    System.out.println();

    System.out.println("Удаление всех элементов из c2, которых нет в c1");

    c2.retainAll(c1);

    // Вывод содержимого коллекции c2

    for(Object o : c2) {

        System.out.println("элемент:" + o);

    }

    // Количество элементов коллекции c2

    System.out.println("Коллекция c2.Количество элементов:" + c2.size());

    // Удаление всех элементов коллекции через итератор

    // Проверка, если элемент есть, то можно его удалять

    while(!c2.isEmpty()) {

        Iterator it = c2.iterator();

        Object o = it.next();

        System.out.println("Удаляем:" + o);

        // Удаление элемента

        it.remove();

    }  

    // Проверка, коллекция пустая?

    flag = c2.isEmpty();

    System.out.println("Коллекция с2 пустая? " + flag);

  }

 

Будет выведено

 Извлечение элементов коллекции с использованием foreach цикла

Элемент : 1
Элемент : 2
Элемент : 3
Элемент : 4
Элемент : 5
Извлечение элементов используя итератор
элемент:1
элемент:2
элемент:3
элемент:4
элемент:5
Количество элементов в коллекции: 5
Коллекция содержит элемент 5? true
Коллекция пустая? false
Удален элемент 5? true
число элементов в коллекции после удаления: 4

Преобразование коллекции в массив
элемент:1
элемент:2
элемент:3
элемент:4
Cодержимое коллекции c2
элемент:6
элемент:7
элемент:8
Групповые операции
Коллекция c1 содержит все элементы из c2? false
Добавление всех элементов c1 в c2
Cодержимое коллекции c2
элемент:6
элемент:7
элемент:8
элемент:1
элемент:2
элемент:3
элемент:4
Коллекция c2 содержит все элементы из c1? true

Удаление всех элементов из c2, которых нет в c1
элемент:1
элемент:2
элемент:3
элемент:4
Коллекция c2.Количество элементов:4
Удаляем:1
Удаляем:2
Удаляем:3
Удаляем:4
Коллекция с2 пустая? true