Читаем Java 7 полностью

В классе 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);

Если при создании вектора шаблоном был указан определенный тип элементов, например,

Vector v = new Vector<>(); v.add("First"); v.add("Second");

то возвращается объект именно этого типа и явное приведение типа не требуется, можно написать просто

String s = v.get(1);

Получить все элементы вектора в виде массива типа Object[] можно методами toArray() и toArray(Object[] a). Второй метод заносит все элементы вектора в массив a, если в нем достаточно места.

Как узнать, есть ли элемент в векторе

Логический метод contains(Object element) возвращает true, если элемент element находится в векторе.

Логический метод containsAll(Collection c) возвращает true, если вектор содержит все элементы указанной коллекции.

Как узнать индекс элемента
Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных