Учебное пособие: Наследование и классы-коллекции

v.setSize(4); // Уменьшаем число элементов

v.add("собрать."); // Добавляем в конец

// укороченного вектора

v.set(3, "опять"); // Ставим в позицию 3

for (int i = 0; i < v.sizeO; i++) // Перебираемвесьвектор

System.out.print(v.get(i) + " ");

System.out.println();

Класс Vector является примером того, как можно объекты класса Object, a значит, любые объекты, объединить в коллекцию. Этот тип коллекции упорядочивает и даже нумерует элементы. В векторе есть первый элемент, есть последний элемент. К каждому элементу обращаются непосредственно по индексу. При добавлении и удалении элементов оставшиеся элементы автоматически перенумеровываются.

Второй пример коллекции — класс Stack — расширяет кладе Vector.

Класс Stack

Класс Stack из пакета java.util. объединяет элементы в стек.

Стек (Stack) реализует порядок работы с элементами подобно магазину винтовки— первым выстрелит патрон, положенный в магазин последним,— или подобно железнодорожному тупику — первым из тупика выйдет вагон, загнанный туда последним. Такой порядок обработки называется LIFO (Last In — First Out).

Перед работой создается пустой стек конструктором Stack ().

Затем на стек кладутся и снимаются элементы, причем доступен только "верхний" элемент, тот, что положен на стек последним.

Дополнительно к методам класса vector класс Stack содержит пять методов, позволяющих работать с коллекцией как со стеком:

push (Object item) —помещает элемент item в стек;

pop () — извлекает верхний элемент из стека;

peek () — читает верхний элемент, не извлекая его из стека;

empty () — проверяет, не пуст ли стек;

search (Object item) — находит позицию элемента item в стеке. Верхний элемент имеет позицию 1, под ним элемент 2 и т. д. Если элемент не найден, возвращается — 1.

Еще один пример коллекции совсем другого рода — таблицы — предоставляет класс Hashtable.

Класс Hashtable

Класс Hashtable расширяет абстрактный класс Dictionary. В объектах этого класса хранятся пары "ключ — значение".

Из таких пар "Фамилия И. О. — номер" состоит, например, телефонный справочник.

Каждый объект класса Hashtable кроме размера (size) — количества пар, имеет еще две характеристики: емкость (capacity) — размер буфера, и показатель загруженности (load factor) — процент заполненности буфера, по достижении которого увеличивается его размер.

Как создать таблицу

Для создания объектов класс Hashtable предоставляет четыре конструктора:

Hashtable() — создает пустой объект с начальной емкостью в 101 элемент и показателем загруженности 0,75;

Hashtable (int capacity) — создает пустой объект с начальной емкостью capacity и показателем загруженности 0,75;

Hashtable(int capacity, float loadFactor) — создает пустой Объект с начальной емкостью capacity и показателем загруженности loadFactor;

Hashtable (Map f) — создает объект класса Hashtable, содержащий все элементы отображения f, с емкостью, равной удвоенному числу элементов отображения f, но не менее 11, и показателем загруженности 0,75.

К-во Просмотров: 547
Бесплатно скачать Учебное пособие: Наследование и классы-коллекции