Содержание
- 2. Что такое коллекции? Классы позволяющие хранить и производить операции над множеством объектов. java.lang.Iterable java.util.Collection java.util.List -
- 3. Зачем нужны коллекции? Array vs Collection - Типизация данных - Безопасность типа хранимых данных на уровне
- 4. Методы коллекций Проверки на вхождение boolean contains(Object o); ─ одного элемента boolean containsAll(Collection c); ─ всех
- 5. Методы коллекций Добавление элементов boolean add(E e); ─ одного элемента boolean addAll(Collection c); ─ элементов коллекции
- 6. Преобразование в массив Object[] toArray(); ─ создает новый массив Object[] toArray(Object[] a); ─ использует переданный массив
- 7. Итерирование java.lang.Iterable: методы Iterator iterator(); boolean hasNext(); T next(); void remove(); Сколько итераций будет выполнено? List
- 8. Стандартные коллекции
- 9. Стандартные коллекции
- 10. ArrayList
- 11. ArrayList При добавлении 11-го элемента ArrayList может менять свой размер во время исполнения программы Элементы ArrayList
- 12. ArrayList Добавление в «середину» списка происходит в три этапа: проверяется, достаточно ли места в массиве; 2)
- 13. ArrayList Итоги — Быстрый доступ к элементам по индексу за время O(1); — Доступ к элементам
- 14. LinkedList
- 15. LinkedList Является представителем двунаправленного списка, где каждый элемент структуры содержит указатели на предыдущий и следующий элементы.
- 16. LinkedList Добавление элементов в «середину» списка
- 17. LinkedList. Применение (FIFO) public class Queue { private final LinkedList list = new LinkedList(); public void
- 18. LinkedList Итоги — Из LinkedList можно организовать стэк, очередь, или двойную очередь, со временем доступа O(1);
- 19. HashCode Если очень просто, то хеш-код — это число. Если более точно, то это битовая строка
- 20. HashCode 1. Для одного и того-же объекта, хеш-код всегда будет одинаковым
- 21. HashCode 2. Если объекты одинаковые, то и хеш-коды одинаковые (но не наоборот, см. правило 3).
- 22. HashCode 3. Если хеш-коды равны, то входные объекты не всегда равны (коллизия).
- 23. HashCode 4. Если хеш-коды разные, то и объекты гарантированно разные.
- 24. Эквивалентность Каждый вызов оператора new порождает новый объект в памяти. public class BlackBox { private int
- 25. Эквивалентность Создадим класс для демонстрации BlackBox. public class DemoBlackBox { public static void main(String[] args) {
- 26. Эквивалентность Содержимое этих объектов одинаково, то есть эквивалентно. Для проверки эквивалентности в классе Object существует метод
- 27. Эквивалентность При сравнение объектов, операция “==” вернет true лишь в одном случае — когда ссылки указывают
- 28. Эквивалентность public class DemoBlackBox { public static void main(String[] args) { ... BlackBox object3 = new
- 29. Эквивалентность public class BlackBox { ... @Override public int hashCode() { final int prime = 31;
- 30. Эквивалентность public class BlackBox { ... @Override public boolean equals(Object obj) { if (this == obj)
- 31. Эквивалентность object1.equals(object2); object1.hashCode() == object2.hashCode(); Что выведется на экран в первом случае? Во втором?
- 32. Эквивалентность Требования к реализации equals() reflexive. x.equals(x) == true symmetric. Если x.equals(y) == true, то y.equals(x)
- 33. HashMap
- 34. HashMap HashMap — основан на хэш-таблицах, реализует интерфейс Map (что подразумевает хранение данных в виде пар
- 35. HashMap hashCode() Поиск элемента по ключу происходит в 2 этапа: Поиск нужного контейнера (используя hashCode()) Поиск
- 36. HashMap Добавление, получение, удаление элементов Итераторы hashmap.put("0", "zero"); hashmap.get(key); hashmap.remove(key); // 1 for (Map.Entry entry :
- 37. HashMap Итоги — Добавление элемента выполняется за время O(1); — Операции получения и удаления элемента могут
- 38. HashSet
- 39. HashSet В множествах Set каждый элемент хранится только в одном экземпляре, а разные реализации Set используют
- 40. Лабораторная работа Задание: Вычислить сколько раз каждая буква встречается в тексте. public class UniqueChars { private
- 41. Лабораторная работа public class UniqueChars { ... public void calculate() { for (char c : text.toCharArray())
- 42. Лабораторная работа public class UniqueChars { ... @Override public String toString() { String result = "";
- 43. Лабораторная работа Отдельный подсчет цифр; Подсчет в указанном регистре (верхнем, нижнем, не учитывать); interface Basket {
- 44. Лабораторная работа interface Smartable { public List removeInRange(List list, int element, int start, int end); public
- 45. Лабораторная работа public List removeInRange(List list, int element, int start, int end) Который принимает на вход
- 46. Лабораторная работа public boolean isUnique(Map map); Который возвращает true, если в отображении нет двух и более
- 47. Лабораторная работа public Map intersect(Map map1, Map map2); Который возвращает отображение, который содержит пары «ключ=значение», присутствующие
- 48. Лабораторная работа public int countCommon(List list1, List list2); Который возвращает количество уникальных совпавших значений в обоих
- 49. Лабораторная работа public Set removeEvenLength(Set set); Который возвращает множество, в котором удалены все элементы четной длины
- 50. Лабораторная работа public int maxOccurrences(List list); Который возвращает количество вхождений наиболее часто встречающегося элемента. Например, для
- 52. Скачать презентацию