Пример 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!