www.sharkon.kz



                КОНТЕЙНЕРЫ
                     И
             ХРАНЕНИЕ ОБЪЕКТОВ
                       Нефёдов Константин
Основные концепции
www.sharkon.kz


Коллекция                               Карта
                                        набор пар объектов «ключ-
 группа отдельных элементов,
                                          значение», с возможностью
   сформированная по некоторым
                                          выборки по ключу
   правилам

  List (список)                            ArrayList

  Set (множество)                         Map (ассоциативный
                                                 массив)
 Queue (очередь)


                          ApplesAndOrangesWithoutGenerics.java
www.sharkon.kz
                  Библиотека утилит Java




                 java.util.*
Параметризованные
                             и
www.sharkon.kz
                  типизованные контейнеры




      List<Apple> apples = new ArrayList<Apple>();




                   ApplesAndOrangesWithGenerics.java
Добавление групп элементов
www.sharkon.kz
  Collection<Integer> collection =
   new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5));

  Integer[] moreInts = { 6, 7, 8, 9, 10 };
  collection.addAll(Arrays.asList(moreInts));

  // Работает намного быстрее, но таким способом
  // невозможно сконструировать Collection:
  Collections.addAll(collection, 11, 12, 13, 14, 15);
  Collections.addAll(collection, moreInts);

  // Produces a list "backed by" an array:
  List<Integer> list = Arrays.asList(16, 17, 18, 19, 20);
  list.set(1, 99);// Можно - изменение элемента
  // list.add(21); // Ошибка времени выполнения - нижележащий
              // массив не должен изменяться в размерах
Вывод содержимого
                    контейнеров
www.sharkon.kz




                 Arrays.toString



                         PrintingContainers.java
www.sharkon.kz           List
Базовый контейнер ArrayList, оптимизированный для
произвольного доступа к элементам,
но с относительно медленнными операциями вставки
(удаления) элементов в середине списка.

Контейнер LinkedList, оптимизированный для
последовательного доступа, с быстрыми операциями
вставки (удаления) в середине списка; Произвольный
доступ к элементам LinkedList выполняется относительно
медленно, но по широте возможностей он превосходит ArrayList.
Итераторы
www.sharkon.kz




  Итератор — это объект, обеспечивающий перемещение
  по последовательности объектов с выбором каждого объекта
  этой последовательности, при этом про­граммисту­клиенту
   не надо знать или заботиться о лежащей в ее основе
  структуре


        Iterator               Listlterator

                          SimpleIteration.java
Множество(set)
 www.sharkon.kz




Set<Integer> intset = new HashSet<Integer>();



   SetOperations.java   SetOfInteger.java   SortedSetOfInteger.java
Проверка принадлежности
www.sharkon.kz




                 set1.contains("H")


                     SetOperations.java
Карта(Ассоциативный массив)
 www.sharkon.kz




Map<Integer,Integer> m =
  new HashMap<Integer,Integer>();


             PetMap.java
Очередь(Queue)
www.sharkon.kz




          контейнер, работающий по принципу
          «первым вошел, первым вышел» (FIFO)




                 QueueDemo.java
Collection и Iterator
www.sharkon.kz




Collection — корневой интерфейс, описывающий общую
функциональность всех последовательных контейнеров.
Его можно рассматривать как «вторичный интерфейс»,
появившийся вследствие сходства между другими
интерфейсами. Кроме того, класс java.util.AbstractCollection
предоставляет реализацию Collection по умолчанию,
поэтому вы можете создать новый подтип AbstractCollection
без избыточного дублирования кода.



                              InterfaceVsIterator.java
Синтаксис foreach и итераторы
www.sharkon.kz




      Collection<String> cs = new LinkedList<String>();
      Collections.addAll(cs,"Take the long way home".split(" "));
      for(String s : cs) System.out.print("'" + s + "' ");




                                        ForEachCollections.java
www.sharkon.kz




      СПАСИБО ЗА ВНИМАНИЕ!

Контейнеры и хранение объектов в ООП

  • 1.
    www.sharkon.kz КОНТЕЙНЕРЫ И ХРАНЕНИЕ ОБЪЕКТОВ Нефёдов Константин
  • 2.
    Основные концепции www.sharkon.kz Коллекция Карта набор пар объектов «ключ- группа отдельных элементов, значение», с возможностью сформированная по некоторым выборки по ключу правилам List (список) ArrayList Set (множество) Map (ассоциативный массив) Queue (очередь) ApplesAndOrangesWithoutGenerics.java
  • 3.
    www.sharkon.kz Библиотека утилит Java java.util.*
  • 4.
    Параметризованные и www.sharkon.kz типизованные контейнеры List<Apple> apples = new ArrayList<Apple>(); ApplesAndOrangesWithGenerics.java
  • 5.
    Добавление групп элементов www.sharkon.kz Collection<Integer> collection = new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5)); Integer[] moreInts = { 6, 7, 8, 9, 10 }; collection.addAll(Arrays.asList(moreInts)); // Работает намного быстрее, но таким способом // невозможно сконструировать Collection: Collections.addAll(collection, 11, 12, 13, 14, 15); Collections.addAll(collection, moreInts); // Produces a list "backed by" an array: List<Integer> list = Arrays.asList(16, 17, 18, 19, 20); list.set(1, 99);// Можно - изменение элемента // list.add(21); // Ошибка времени выполнения - нижележащий // массив не должен изменяться в размерах
  • 6.
    Вывод содержимого контейнеров www.sharkon.kz Arrays.toString PrintingContainers.java
  • 7.
    www.sharkon.kz List Базовый контейнер ArrayList, оптимизированный для произвольного доступа к элементам, но с относительно медленнными операциями вставки (удаления) элементов в середине списка. Контейнер LinkedList, оптимизированный для последовательного доступа, с быстрыми операциями вставки (удаления) в середине списка; Произвольный доступ к элементам LinkedList выполняется относительно медленно, но по широте возможностей он превосходит ArrayList.
  • 8.
    Итераторы www.sharkon.kz Итератор— это объект, обеспечивающий перемещение по последовательности объектов с выбором каждого объекта этой последовательности, при этом про­граммисту­клиенту не надо знать или заботиться о лежащей в ее основе структуре Iterator Listlterator SimpleIteration.java
  • 9.
    Множество(set) www.sharkon.kz Set<Integer> intset= new HashSet<Integer>(); SetOperations.java SetOfInteger.java SortedSetOfInteger.java
  • 10.
  • 11.
  • 12.
    Очередь(Queue) www.sharkon.kz контейнер, работающий по принципу «первым вошел, первым вышел» (FIFO) QueueDemo.java
  • 13.
    Collection и Iterator www.sharkon.kz Collection— корневой интерфейс, описывающий общую функциональность всех последовательных контейнеров. Его можно рассматривать как «вторичный интерфейс», появившийся вследствие сходства между другими интерфейсами. Кроме того, класс java.util.AbstractCollection предоставляет реализацию Collection по умолчанию, поэтому вы можете создать новый подтип AbstractCollection без избыточного дублирования кода. InterfaceVsIterator.java
  • 14.
    Синтаксис foreach иитераторы www.sharkon.kz Collection<String> cs = new LinkedList<String>(); Collections.addAll(cs,"Take the long way home".split(" ")); for(String s : cs) System.out.print("'" + s + "' "); ForEachCollections.java
  • 15.
    www.sharkon.kz СПАСИБО ЗА ВНИМАНИЕ!