Возможность применения настраиваемых типов при работе с коллекциями
Наиболее значительное изменение API кроется в классах, интерфейсах и методах, формирующих подсистему Collections Framework. Каждый из них был полностью перестроен и модифицирован для работы с параметризованным типом, вместо ссылок на тип Object. Превращение Collections Framework в подсистему настраиваемых типов стало важнейшим достижением, потому что все операции с коллекциями теперь обладают типовой безопасностью. Настраиваемые типы избавили от необходимости обратного преобразования в надлежащий тип элемента, содержащегося в коллекции, при его извлечении.
В общем, все классы и интерфейсы коллекций получили параметры типа, которые описывают тип элемента, хранящегося и обрабатываемого в коллекции. Далее приведен перечень новых объявлений интерфейсов коллекций:
interface Collection interface Comparator
interface Iterator interface ListIterator
interface List interface Map
interface Queue interface Set
interface SortedMap interface SortedSet
В приведенном перечне интерфейс Queue добавлен в версии Java 2 5.0. Далее приведен перечень новых объявлений классов:
abstract class AbstractCollection
abstract class AbstractList
abstract class AbstractMap
abstract class AbstractSeguentialList
class ArrayList
class SnuinMap, V>
class HashMap
class HashTable
class LinkedHashMap
class LinkedList
class Stack
class TreeSet
class WeakHashMap
abstract class AbstractQueue
abstract class AbstractSet
class Collections
class EnumSet>
classHashSet
class IdentifyHashMap
class LinkedHashSet
class PriorityQueue
class TreeMap
class Vector
В приведенном списке классы EnumMap, EnumSet, AbstractQueue и PriorityQueue добавлены в версии Java 2 5.0.
Теперь, когда Collections Framework превратилась в подсистему настраиваемых типов, при создании коллекции Вы задаете тип данных, которые будут в ней храниться. Например:
ArrayList list = new Arraylist();
объявляет переменную list как ссылку на объект класса ArrayList, содержащий объекты класса Integer.
Поскольку интерфейс Iterator теперь тоже настраиваемый тип, Вы должны задавать как параметр тип данных, для которых создается итератор. Например, если иметь в виду приведенное объявление переменной list, нужно
Iterator itr =list.iterator();
Переменная list содержит объекты типа Integer, поэтому переменная itr должна быть объявлена как итератор для объектов типа Integer.
Опубликовал Kest
January 13 2009 19:13:52 ·
0 Комментариев ·
7153 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.