SlideShare a Scribd company logo
1 of 15
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




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

More Related Content

What's hot

Yii development
Yii developmentYii development
Yii developmentMageCloud
 
Влад Ковташ — Yap Database
Влад Ковташ — Yap DatabaseВлад Ковташ — Yap Database
Влад Ковташ — Yap DatabaseCocoaHeads
 
Мифы и легенды Java Stream API
Мифы и легенды Java Stream APIМифы и легенды Java Stream API
Мифы и легенды Java Stream APICEE-SEC(R)
 
JPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчикаJPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчикаAnton Arhipov
 
Разработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIРазработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIIlya Chesnokov
 
Вебинар Томулевича adjacency
Вебинар Томулевича adjacencyВебинар Томулевича adjacency
Вебинар Томулевича adjacencyMedia Gorod
 
Интеграция Яндекс Сервер
Интеграция Яндекс СерверИнтеграция Яндекс Сервер
Интеграция Яндекс СерверPVasili
 
PHP Advanced
PHP AdvancedPHP Advanced
PHP AdvancedNoveo
 
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)Ontico
 
Игорь Любин - PowerShell - ConfeT&QA 2011
Игорь Любин - PowerShell - ConfeT&QA 2011Игорь Любин - PowerShell - ConfeT&QA 2011
Игорь Любин - PowerShell - ConfeT&QA 2011ilyubin
 
Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"LogeekNightUkraine
 
Денис Чистяков: DOM, jQuery и все, все, все
Денис Чистяков: DOM, jQuery и все, все, всеДенис Чистяков: DOM, jQuery и все, все, все
Денис Чистяков: DOM, jQuery и все, все, всеYandex
 
Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Unguryan Vitaliy
 
PHP basic
PHP basicPHP basic
PHP basicNoveo
 
Java Core. Lecture# 4. Collections.
Java Core. Lecture# 4. Collections.Java Core. Lecture# 4. Collections.
Java Core. Lecture# 4. Collections.Anton Moiseenko
 

What's hot (20)

Асинхронный JavaScript
Асинхронный JavaScriptАсинхронный JavaScript
Асинхронный JavaScript
 
Yii development
Yii developmentYii development
Yii development
 
Влад Ковташ — Yap Database
Влад Ковташ — Yap DatabaseВлад Ковташ — Yap Database
Влад Ковташ — Yap Database
 
Мифы и легенды Java Stream API
Мифы и легенды Java Stream APIМифы и легенды Java Stream API
Мифы и легенды Java Stream API
 
JPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчикаJPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчика
 
Разработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIРазработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PI
 
Scala - my path
Scala - my pathScala - my path
Scala - my path
 
Вебинар Томулевича adjacency
Вебинар Томулевича adjacencyВебинар Томулевича adjacency
Вебинар Томулевича adjacency
 
Интеграция Яндекс Сервер
Интеграция Яндекс СерверИнтеграция Яндекс Сервер
Интеграция Яндекс Сервер
 
PHP Advanced
PHP AdvancedPHP Advanced
PHP Advanced
 
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
 
Игорь Любин - PowerShell - ConfeT&QA 2011
Игорь Любин - PowerShell - ConfeT&QA 2011Игорь Любин - PowerShell - ConfeT&QA 2011
Игорь Любин - PowerShell - ConfeT&QA 2011
 
Scala On Rest
Scala On RestScala On Rest
Scala On Rest
 
Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"
 
Perl 5.10 и 5.12
Perl 5.10 и 5.12Perl 5.10 и 5.12
Perl 5.10 и 5.12
 
09 - Hadoop. Pig
09 - Hadoop. Pig09 - Hadoop. Pig
09 - Hadoop. Pig
 
Денис Чистяков: DOM, jQuery и все, все, все
Денис Чистяков: DOM, jQuery и все, все, всеДенис Чистяков: DOM, jQuery и все, все, все
Денис Чистяков: DOM, jQuery и все, все, все
 
Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.
 
PHP basic
PHP basicPHP basic
PHP basic
 
Java Core. Lecture# 4. Collections.
Java Core. Lecture# 4. Collections.Java Core. Lecture# 4. Collections.
Java Core. Lecture# 4. Collections.
 

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

C# Desktop. Занятие 05.
C# Desktop. Занятие 05.C# Desktop. Занятие 05.
C# Desktop. Занятие 05.Igor Shkulipa
 
модуль 13 использование коллекций
модуль 13 использование коллекциймодуль 13 использование коллекций
модуль 13 использование коллекцийYevgeniy Gertsen
 
Алгоритмы и структуры данных весна 2014 лекция 2
Алгоритмы и структуры данных весна 2014 лекция 2Алгоритмы и структуры данных весна 2014 лекция 2
Алгоритмы и структуры данных весна 2014 лекция 2Technopark
 
Коллекции в Java
Коллекции в JavaКоллекции в Java
Коллекции в Javametaform
 
Лекция 3 Элементарные структуры данных Часть 1
Лекция 3 Элементарные структуры данных Часть 1Лекция 3 Элементарные структуры данных Часть 1
Лекция 3 Элементарные структуры данных Часть 1simple_people
 
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...JetBrains Russia
 
Алгоритмы и структуры данных осень 2013 лекция 2
Алгоритмы и структуры данных осень 2013 лекция 2Алгоритмы и структуры данных осень 2013 лекция 2
Алгоритмы и структуры данных осень 2013 лекция 2Technopark
 
Android - 03 - Multithreading, Collections
Android - 03 - Multithreading, CollectionsAndroid - 03 - Multithreading, Collections
Android - 03 - Multithreading, CollectionsNoveo
 

Similar to Контейнеры и хранение объектов в ООП (10)

C# Desktop. Занятие 05.
C# Desktop. Занятие 05.C# Desktop. Занятие 05.
C# Desktop. Занятие 05.
 
List - списки
List - списки List - списки
List - списки
 
модуль 13 использование коллекций
модуль 13 использование коллекциймодуль 13 использование коллекций
модуль 13 использование коллекций
 
Алгоритмы и структуры данных весна 2014 лекция 2
Алгоритмы и структуры данных весна 2014 лекция 2Алгоритмы и структуры данных весна 2014 лекция 2
Алгоритмы и структуры данных весна 2014 лекция 2
 
Коллекции в Java
Коллекции в JavaКоллекции в Java
Коллекции в Java
 
Лекция 3 Элементарные структуры данных Часть 1
Лекция 3 Элементарные структуры данных Часть 1Лекция 3 Элементарные структуры данных Часть 1
Лекция 3 Элементарные структуры данных Часть 1
 
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
 
JSTL
JSTLJSTL
JSTL
 
Алгоритмы и структуры данных осень 2013 лекция 2
Алгоритмы и структуры данных осень 2013 лекция 2Алгоритмы и структуры данных осень 2013 лекция 2
Алгоритмы и структуры данных осень 2013 лекция 2
 
Android - 03 - Multithreading, Collections
Android - 03 - Multithreading, CollectionsAndroid - 03 - Multithreading, Collections
Android - 03 - Multithreading, Collections
 

More from itclub_kz

Обработка ошибок и исключений
Обработка ошибок и исключенийОбработка ошибок и исключений
Обработка ошибок и исключенийitclub_kz
 
интерфейсы в ооп
интерфейсы в оопинтерфейсы в ооп
интерфейсы в оопitclub_kz
 
Отношения между классами
Отношения между классамиОтношения между классами
Отношения между классамиitclub_kz
 
Основы объектно-ориентированного программирования
Основы объектно-ориентированного программированияОсновы объектно-ориентированного программирования
Основы объектно-ориентированного программированияitclub_kz
 
философия Java
философия Javaфилософия Java
философия Javaitclub_kz
 
информационные технологии
информационные технологииинформационные технологии
информационные технологииitclub_kz
 

More from itclub_kz (6)

Обработка ошибок и исключений
Обработка ошибок и исключенийОбработка ошибок и исключений
Обработка ошибок и исключений
 
интерфейсы в ооп
интерфейсы в оопинтерфейсы в ооп
интерфейсы в ооп
 
Отношения между классами
Отношения между классамиОтношения между классами
Отношения между классами
 
Основы объектно-ориентированного программирования
Основы объектно-ориентированного программированияОсновы объектно-ориентированного программирования
Основы объектно-ориентированного программирования
 
философия Java
философия Javaфилософия Java
философия Java
 
информационные технологии
информационные технологииинформационные технологии
информационные технологии
 

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

  • 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. Проверка принадлежности www.sharkon.kz set1.contains("H") SetOperations.java
  • 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 СПАСИБО ЗА ВНИМАНИЕ!