Пример 4.1. Работа с вектором



Vector v = new Vector();

String s = "Строка, которую мы хотим разобрать на слова.";

StringTokenizer st = new StringTokenizer(s, " \t\n\r,.");

while (st.hasMoreTokens()) { // Получаем слово и

v.add(st.nextToken());          // добавляем в конец вектора 

}

System.out.println(v.firstElement()); // Первый элемент 

System.out.println(v.lastElement()); // Последний элемент

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

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

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

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

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

System.out.println();

 

Класс Vector является примером того, как можно объекты класса Object, a значит, любые объекты, объединить в коллекцию.

 

Класс Stack. Класс Stack расширяет класс Vector. Стек(stack) реализует порядок работы с элементами по принципу, который называется LIFO (Last In — First Out). Перед работой создается пустой стек конструктором Stack(). Затем на стек кладутся и снимаются элементы, причем доступен только "верхний" элемент, тот, что положен на стек последним.

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

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

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

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

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

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

Пример 4.2. Пример стека

Stack stack = new Stack();

stack.push("aaa"); stack.push("bbb"); stack.push("ccc");

for (int i = 0; i < stack.size(); i++)

  System.out.print(stack.get(i) + " - ");

System.out.println();

stack.pop();

for (int i = 0; i < stack.size(); i++)

System.out.print(stack.get(i) + " - ");

System.out.println();

 

Класс 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.

Для заполнения объекта класса Hashtable используются два метода:

Object put(Object key, Object value) — добавляет пару "key— value", если ключа key не было в таблице, и меняет значение value ключа key, если он уже есть в таблице. Возвращает старое значение ключа или null, если его не было. Если хотя бы один параметр равен null, возникает исключительная ситуация.

void putAll(Map f) — добавляет все элементы отображения f. В объектах-ключах key должны быть реализованы методы hashCode() и equals ().

get (Object key)—  возвращает значение элемента с ключом key в виде объекта класса Object. Для дальнейшей работы его следует преобразовать к конкретному типу;

containsKey(Object key) — возвращает true, если в таблице есть ключ key;

containsValue(Object value) —  возвращает true, если в таблице есть ключи со значением value;

isEmpty()— возвращает true, если в таблице нет элементов;

values()— представляет все значения value таблицы в виде интерфейса Collection. Все модификации в объекте Сollection изменяют таблицу, и наоборот;

keySet()—  предоставляет все ключи key таблицы в виде интерфейса Set. Все изменения в объекте Set корректируют таблицу, и наоборот;

entrySet()—  представляет все пары " key— value " таблицы в виде интерфейса Set. Все модификации в объекте set изменяют таблицу, и наоборот;

toString ()—  возвращает строку, содержащую все пары;

remove(Object key) — удаляет пару с ключом key, возвращая значение этого ключа, если оно есть, и null, если пара с ключом key не найдена;

clear()— удаляет все элементы, очищая таблицу.


Дата добавления: 2018-04-15; просмотров: 307; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!