Начальная версия Java предлагала лишь небольшой набор классов наиболее часто употребляемых структур данных: Vector, Stack, Hashtable, BitSet и интерфейс Enumeration, предоставляющий абстрактный механизм для посещения элементов в произвольном контейнере. Безусловно, это было мудрое решение — на реализацию всеобъемлющей библиотеки классов коллекции потребовалось время и опыт.
К появлению Java SE 1.2 проектировщики поняли, что настало время создать полноценный набор структур данных. При этом они столкнулись с множеством противоречивых требовании. Они хотели, чтобы библиотека была маленькой и легкой в изучении. Нужно было избежать сложности стандартной библиотеки шаблонов(STL) языка C++, но при этом позаимствовать «обобщенные алгоритмы», впервые появившиеся в STL. Необходимо было обеспечить совместимость унаследованных классов коллекций с новым каркасом.
Вам нужен веб-сайт для вашего бизнеса? Советуем вам создание web сайтов в Новосибирске. Все по очень выгодным ценам.
Как это случается со всеми проектировщиками библиотек коллекций, перед ними не раз вставал сложный выбор, и по пути было найдено множества оригинальных решений. На этом блоге мы раскроем основы дизайна каркаса коллекций Java, продемонстрируем, как заставить из работать, и объясним смысл наиболее спорных средств.