Освой программирование играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Коллекции

Интерфейс Collection является самым главным для классов коллекций в библиотеке Java. Два основных метода интерфейса. Другие методы рассмотрим позже в конкретных реализациях коллекций.

  • boolean add(E element) - добавить элемент
  • Iterator<E> iterator() - для прохождения по элементам

Метод add() добавляет элемент в коллекцию и возвращает логическое значение true, если добавление изменило коллекцию.

Метод iterator() возвращает объект класса, реализующего интерфейс Iterator.

Метод toString() выводит содержимое коллекции в квадратных скобках, с разделением элементов запятыми.

Коллекции в свою очередь делится на другие большие подгруппы.

List

К нему относится список (интерфейс List), где в определенной последовательности хранится группа элементов. К существующим методам коллекции у списка добавлены новые методы set(), get(), indexOf. Главная отличительная особенность - вы всегда можете пронумеровать элементы списка. Представьте себе подписанные коробки, в которых сидят коты, вы всегда можете обратиться к нужному коту по номеру коробки. При этом допускаются коты-однофамильцы, то есть одинаковые элементы.

Классы, работающие с интерфейсом List:

  • ArrayList - индексированная динамически расширяющая и сокращающая последовательность
  • LinkedList - упорядоченная последовательность, допускающая эффективную вставку и удаление на любой позиции

Контейнеры ArrayList и LinkedList принадлежат к семейству List и элементы в них хранятся в порядке вставки. Они различаются не только скоростью выполнения тех или иных операций, но и тем, что LinkedList содержит больше операций, чем ArrayList.

Set

Множество Set, в которое можно добавлять только по одному элементу определённого типа. Но при этом, вы не можете их получить по индексу. Воспринимайте множество как большую общую комнату, в которой свободно гуляют коты. Вы можете их пересчитать, вы можете проверить, что в комнате есть и Мурзик, и Васька, но в каком именно месте они сейчас спят? Может стоит прикупить коробки? В отличие от списка, коты с одинаковыми именами в такой комнате жить не могут. Это главное свойство множества - все элементы уникальны.

  • HashSet - неупорядоченная коллекция, исключающая дубликаты
  • TreeSet - отсортированное множество
  • EnumSet - множество значений перечислимого типа
  • LinkedHashSet - множество, запоминающее порядок ввода элементов

Queue

Очередь Queue.

  • ArrayDeque - упорядоченная последовательность в виде циклического массива
  • PriorityQueue - коллекция, позволяющая эффективно удалять наименьший элемент

Интерфейс Map не входит в семейство коллекций, но обычно изучается вместе с ним.

Реклама