Содержание

Проработать:

  1. Advanced Java - Collections
  2. HashMap
  3. Структуры данных в картинках. LinkedHashMap
  4. Структуры данных в картинках. HashMap
  5. Шпаргалка Java программиста 7.2 Типовые задачи: Обход Map'ы, подсчет количества вхождений подстроки
  6. Внутренняя работа HashMap в Java
  7. Подробный разбор класса HashMap
  8. Итераторы
  9. Знай сложности алгоритмов
  10. Гарвард. CS50 на русском. 1. Короткие видео. 1. Хэш таблицы
  11. Java собеседование. Коллекции
  12. Сказ о двух итераторах: стратегии конкурентной модификации в Java

Что это

Collections Framework - это специальные классы для хранения использования и удаление множества одинаковых объектов. Нельзя работать с примитивами.

Основные разделы:

Новые методы в коллекциях:

  1. Iterable.forEach(Consumer action)
  2. Map.forEach(BiConsumer action)
  3. Collection.removeIf(Predicate filter)
  4. Map.compute(K key,BiFunction remappingFunction) - если по ключу есть/нет элемент, заменить/добавить значение на результат переданной функции.
  5. Map.computeIfPresent(K key, BiFunction remappingFunction) - ТОЛЬКО если по ключу есть элемент, заменить значение на результат переданной функции.
  6. Map.computeIfAbsent(K key, Function mappingFunction) - если отсутствует по ключу, добавить переданный ключ, а значение на результат переданной функции.
  7. Map.getOrDefault(Object key, V defaultValue) - возвращает значение, соответствующее ключу key. Если такой ключ не существует — возвращает значение по умолчанию.
  8. Map.merge(K key, V value, BiFunction remappingFunction)
    Если в вашей Map ключ key не существует, или value для этого ключа равно null — метод добавляет в Map переданную пару key-value.
    Если ключ Key существует и его value != null — метод меняет его value на результат выполнения переданной функции remappingFunction.
    Если remappingFunction возвращает null - key удаляется из коллекции.
  9. Map.putIfAbsent(K key, V value) - если нужно положить в Map и не заменять значение, если элемент по ключу уже лежит.
  10. Map.replace и Map.replaceAll()
    Map.replace(K key, V newValue — заменяет значение ключа key на newValue, если такой ключ существует. Если нет — ничего не происходит.
    Map.replace(K key, V oldValue, V newValue) — делает то же самое, но только если текущее значение key равно oldValue.
    Map.replaceAll(BiFunction function) — заменяет все значения value на результат выполнения функции function.