В языке Java с самых первых версий есть класс Vector, предназначенный для хранения переменного числа элементов самого общего типа Obj ect.
Класс Vector
В классе Vector из пакета java.util хранятся элементы типа Object, а значит, ссылки любого типа. Количество элементов может быть произвольным и не определяться заранее. Элементы получают индексы 0, 1, 2 и т. д. К каждому элементу вектора можно обратиться по индексу, как и к элементу массива.
Кроме количества элементов, называемого размером (size) вектора, есть еще размер буфера — емкость (capacity) вектора. Обычно емкость совпадает с размером вектора, но можно ее увеличить методом ensureCapacity(int minCapacity) или сравнять с размером вектора методом trimToSize ( ).
В Java 2 класс Vector переработан так, чтобы включить его в иерархию классов-коллекций. Для этого добавлено много новых методов, реализующих методы соответствующих интерфейсов-коллекций. Сейчас многие действия можно совершать старыми и новыми методами. Рекомендуется использовать новые методы, поскольку старые могут быть исключены из следующих версий Java.
Как создать вектор
В классе четыре конструктора:
□ Vector () — создает пустой объект нулевой длины с емкостью в 10 элементов;
□ Vector (int capacity) -создает пустой объект указанной емкости capacity;
□ Vector (int capacity, int increment) - формирует пустой объект указанной емкости
capacity и задает число increment, на которое увеличивается емкость при необходимости;
□ Vector(Collection c) — вектор создается по указанной коллекции.
Если число capacity отрицательно, то возникает исключительная ситуация.
После создания вектора его можно заполнять элементами. В векторе разрешено хранить объекты разных типов, поскольку на самом деле в нем хранятся не значения объектов, а ссылки на них. Класс Vector настраиваемый, и если предполагается заполнять вектор ссылками одного и того же типа, то этот тип можно задать при создании вектора в шаблоне (generic) коренного типа, в угловых скобках, по такой схеме:
Vector v = new Vector();
или, используя "ромбовидный оператор",
Vector v = new Vector<>();
После этого определения компилятор будет следить за тем, чтобы у всех элементов вектора был тип String. Извлечение элементов из вектора не потребует приведения типа.
Как добавить элемент в вектор
Метод add (Object element) позволяет добавить элемент в конец вектора (то же делает старый метод addElement (Obj ect element)).
Методом add(int index, Object element) или старым методом insertElementAt(Object element, int index) можно вставить элемент в указанное место index. Элемент, находившийся на этом месте, и все последующие элементы сдвигаются, их индексы увеличиваются на единицу.
Метод addAll(Collection coll) позволяет добавить в конец вектора все элементы коллекции coll.
Методом addAll (int index, Collection coll) возможно вставить в позицию index все элементы коллекции coll.
Вот пример создания и заполнения вектора:
Vector v = new Vector(); v.add(new Date()); v.add("CTpoKa символов"); v.add(new Integer(10)); v.add(20);
Обратите внимание в этом примере на две последние строки. Первая из них записана по канонам работы с коллекцией: в вектор вместо числа 10 заносится ссылка на объект класса Integer, содержащий это число. В последней строке применета автоматическая упаковка типа: в методе add() записывается просто число 20, метод сам создает необходимую ссылку.
Как заменить элемент
Метод set(int index, Object element) заменяет элемент, стоявший в векторе в позиции index, на элемент element (то же самое позволяет выполнить старый метод
setElementAt(Object element, int index)).
Как узнать размер вектора
Количество элементов в векторе всегда можно узнать методом size().
Метод capacity() возвращает емкость вектора.
Логический метод isEmpty() возвращает true, если в векторе нет ни одного элемента.
Как обратиться к элементу вектора
Обратиться к первому элементу вектора можно методом firstElement(), к последнему - методом lastElement (), к любому элементу- методом get (int index) или старым
методом elementAt (int index).
Эти методы возвращают объект класса Object. Перед использованием его следует привести к нужному типу, например:
String s = (String)v.get(1);
Если при создании вектора шаблоном был указан определенный тип элементов, например,
Читать дальше
Конец ознакомительного отрывка
Купить книгу