Набор — иногда вызывал контейнер — просто объект что группы многократные элементы в единый блок. Наборы используются, чтобы сохранить, получить, управлять, и передать агрегированные данные. Как правило, они представляют элементы данных, которые формируют естественную группу, такую как покерная комбинация (набор карт), почтовая папка (набор букв), или телефонный справочник (отображение имен к номерам телефона).
Если Вы использовали язык программирования Java — или примерно какой-либо другой язык программирования — Вы уже знакомы с наборами. Реализации набора в ранее (пред1.2) версии платформы Java включаются Vector
, Hashtable
, и array
. Однако, те более ранние версии не содержали платформу наборов.
Какова Платформа Наборов?
Платформа наборов является объединенной архитектурой для представления и управления наборами. Все платформы наборов содержат следующее:
- Интерфейсы: Они - абстрактные типы данных, которые представляют наборы. Интерфейсы позволяют наборам управляться независимо от деталей их представления. В объектно-ориентированных языках интерфейсы обычно формируют иерархию.
- Реализации: Они - конкретные реализации интерфейсов набора. В основном они - допускающие повторное использование структуры данных.
- Алгоритмы: Они - методы, которые выполняют полезные вычисления, такие как поиск и сортировка, на объектах тот набор реализации интерфейсы. Алгоритмы, как говорят, являются полиморфными: то есть, тот же самый метод может использоваться на многих различных реализациях соответствующего интерфейса набора. В основном алгоритмы являются допускающей повторное использование функциональностью.
Кроме Платформы Наборов Java, самыми известными примерами платформ наборов является Стандартная библиотека шаблонов C++ (STL) и иерархия набора Смаллтолка. Исторически, платформы наборов были довольно сложны, который дал им репутацию наличия крутой кривой обучения. Мы полагаем, что Платформа Наборов Java порывает с этой традицией, как Вы узнаете для вас непосредственно в этой главе.
Преимущества Платформы Наборов Java
Платформа Наборов Java предоставляет следующие преимущества:
- Уменьшает работу по программированию: обеспечивая полезные структуры данных и алгоритмы, Платформа Наборов освобождает Вас, чтобы сконцентрироваться на важных частях Вашей программы, а не на низком уровне "инфраструктура", требуемая заставить это работать. Облегчая функциональную совместимость среди несвязанных API, Платформа Наборов Java освобождает Вас от записи объектов адаптера или кода преобразования, чтобы соединить API.
- Скорость программы увеличений и качество: Эта Платформа Наборов обеспечивает высокоэффективные, высококачественные реализации полезных структур данных и алгоритмов. Различные реализации каждого интерфейса являются взаимозаменяемыми, таким образом, программы могут быть легко настроены, переключая реализации набора. Поскольку Вы освобождаетесь от тяжелой работы записи Ваших собственных структур данных, у Вас будет больше времени, чтобы посвятить улучшению качества программ и производительности.
- Позволяет функциональную совместимость среди несвязанных API: интерфейсы набора являются жаргоном, которым API передают наборы назад и вперед. Если мой сетевой API администрирования оснастит набор имен узла и если Ваш инструментарий GUI будет ожидать набор заголовков столбцов, то наши API будут взаимодействовать легко, даже при том, что они были записаны независимо.
- Уменьшает усилие изучить и использовать новые API: Много API естественно берут наборы на вводе и оснащают их как выходной. В прошлом каждому такому API посвятили маленький под-API управлению его наборами. Среди этих оперативных под-API наборов была небольшая непротиворечивость, таким образом, необходимо изучить каждого с нуля, и было легко сделать ошибки при использовании их. С появлением стандартных интерфейсов набора ушла проблема.
- Уменьшает усилие разработать новые API: Это - оборот предыдущего преимущества. Разработчики и разработчики не должны повторно изобрести колесо каждый раз, когда они создают API, который полагается на наборы; вместо этого, они могут использовать стандартные интерфейсы набора.
- Способствует повторному использованию программного обеспечения: Новые структуры данных, которые соответствуют стандартным интерфейсам набора, являются по своей природе допускающими повторное использование. То же самое идет для новых алгоритмов, которые работают на объектах, которые реализуют эти интерфейсы.