- •Понятие потока данных в java. Виды потоков:
- •Общая схема записи данных в поток:
- •Общая схема чтения данных из потока:
- •Байтовый поток :свойства, связь потока с файлом, чтение, запись закрытие:
- •Потоки символов: свойства, связь потока с файлом, чтение, запись, закрытие:
- •Потоки строк: свойства, связь потока с файлом, чтение, запись, закрытие:
- •Исключения при работе с потоками:
- •Понятие рекурсии, рекурсивное вычисление факториала:
- •Понятие рекурсии, рекурсивное вычисление суммы элементов массива:
- •Понятие рекурсии, рекурсивное вычисление максимального элемента массива:
- •Формулировка задачи о ханойских башнях:
- •Применение рекурсии при определении связного списка:
- •Понятие списка. Объявление элемента списка:
- •Структура объявления двусвязного списка:
- •Типовые операции для односвязных списков:
- •Кольцевой и двусвязный списки: отличия от односвязного списка:
- •Порядок добавления элемента в односвязный список:
- •Основные типы коллекций, имеющиеся в Java Collection Framework:
- •Составные части jcf и их назначение:
- •Назначение интерфейсов и алгоритмов jcf:
- •Примеры (двух) интерфейсов и (двух) реализаций: сходства и различия:
- •Преимущества, получаемые от применения jcf в программах:
- •Коллекции: списки – основные методы интерфейса List:
- •Коллекции: множества – основные элементы интерфейса Set:
- •Выполнение стандартных операций теории множеств:
- •Списки и множества: сходства и различия:
- •Цикл for-each и его применение в коллекциях:
- •Математическая идея, представленная элементом Map:
- •Вопрос 29. Сравнительный анализ реализаций ArrayList и LinkedList.
- •Вопрос 30. Параметры по которым сравнивают реализации коллекций.
- •Вопрос 31. Понятие и назначение итератора
- •Вопрос 33. Comparable и Comparator
- •Вопрос 34. Сортировка со стандартным и нестандартным отношением порядка.
- •Вопрос 35. Вопрос 36. Вопрос 37. Вопрос 38 Поиск элемента в коллекции. Двоичный и прямой поиск. Способ идентификации ситуации «Элемент не найден».
- •Вопрос 39. Графический интерфейс пользователя. Составные элементы фрейма.
- •Вопрос 40. Библиотеки Java, поддерживающие графический интерфейс.
- •Вопрос 41. Компонент и контейнер.
- •Вопрос 42. Jframe — в иерархии объектов графики.
- •Ответы к экзамену по программированию часть 5 (вопр. 57-69)
- •События мышки. Общая схема обработки событий мышки:
- •Методы интерфейса MouseListener и их назначение:
- •Методы интерфейса MouseMotionListener:
- •Методы класса MouseEvent. Получение координат события:
- •Управляющие элементы графического интерфейса – внешний вид и назначение:
- •Кнопка. Состояния кнопки. События кнопки, их обработка и идентификация:
- •Структура программы, имеющей интерфейс с двумя кнопками:
- •Элементы интерфейса «Условие» («флажок») и его конструкторы:
- •События элемента «флажок» и их обработка.
- •Структура программы с интерфейсом, содержащим два элемента «условие»:
- •67. Элемент интерфейса «радиокнопка» и его конструкторы:
- •Группировка радиокнопок и задание начального состояния в группе.
- •События элемента «радиокнопка» и их обработка.
Вопрос 31. Понятие и назначение итератора
В Java API введен интерфейс iterator, описывающий способ обхода всех элементов коллекции. В каждой коллекции есть метод iterator (), возвращающий реализацию интерфейса iterator для указанной коллекции. Получив эту реализацию, можно обходить коллекцию в некотором порядке, определенном данным итератором, с помощью методов, описанных в интерфейсе iteratorи реализованных в этом итераторе. Подобная техника использована в классе
StringTokenizer.
В интерфейсе iterator описаны всего три метода:
логический метод hasNext () возвращает true, если обход еще не завершен;
метод next о делает текущим следующий элемент коллекции и возвращает его в виде объекта класса object;
метод remove о удаляет текущий элемент коллекции.
Можно представить себе дело так, что итератор — это указатель на элемент коллекции. При создании итератора указатель устанавливается перед первым элементом, next() возвращает очередной элемент коллекции, к которой «привязан» итератор (и делает его текущим). Порядок перебора определяет сам итератор.
Метод remove (), пожалуй, излишен, он уже не относится к задаче обхода коллекции, но позволяет при просмотре коллекции удалять из нее ненужные элементы.
Порядок перебора может быть предопределенным, а может и нет.
Создание итератора
Iterator< Тип > имя_итератора = interf . iterator () ; // Где интерфейс — только интерфейсы Set либо List
while (имя_итератора.hasNext()) // пройти по каждому элементу
System.out.println(имя_итератора.next()); // Печать каждого элемента
Элементы реализующего этот интерфейс коллекции также можно обойти с помощью итераторов. Да, в этом интерфейсе нет метода iterator, но зато есть метод entrySet(). Этот метод вернёт нам Set, содержащий все пары ключ – значение для этой коллекции. Выглядеть это все будет так:
// Для перебора элементов словаря :
for ( Map.Entry< Тип > entry : словарь .entrySet()) // Для кажой пары, принодлежащей множеству пар.
{
System.out.print ("key = "+entry.getKey()+" value = "+entry.getValue() );
}
|
Вопрос 32. Сравнение элементов коллекций. Естественное и неистественное сравнение. |
Естественное сравнение используется по умолчанию в ряде методов
(например, в сортировке sort) и в конструкторах, т.е. без дополнительных указаний
на метод сравнения.
Естественное отношение порядка сравнивает числа по
положению на числовой оси, символы – по числовому значению кода, строки –
лексикографически. Программист может указать, что следует использовать другой
метод сравнения (Неистественное сравнение). Для этого он должен реализовать интерфейс Comparator.
Несколько методов сравнения элементов коллекций :
contains (Object o) - находится ли указанный объект в коллекции;
containsAll (Collection name) - содержатся ли указанные объекты в коллекции.
equals (Object o) - сравнение коллекции с указанным объектом;
addAll (Collection name) — объединение;
retainAll(Collection name) — пересечение;
removeAll(Collection name) — разность;