
- •Понятие потока данных в 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. Элемент интерфейса «радиокнопка» и его конструкторы:
- •Группировка радиокнопок и задание начального состояния в группе.
- •События элемента «радиокнопка» и их обработка.
Цикл for-each и его применение в коллекциях:
Цикл перебирает каждый элемент массива A и записывает его в переменную a, для каждого элемента массива выполняется тело цикла:
class ForEach{
public static void main(String[ ] arg){
int[ ] A= new int[ ]{1,3,2,4,6,5};
for (int a:A) { a++;System.out.print (a+” “); }
System.out.println( );
} }
Внимание! a++ изменяет элемент, но не изменяет коллекцию (для контроля – вывод при помощи обычного цикла).
Математическая идея, представленная элементом Map:
Map –"словарь", содержащий пары (ключ, значение). Например (термин, разъяснение). (map – отображение). Запрещается дублирование ключей. Map - математическое понятие "однозначная функция".
Типовые операции:
put – добавить пару (ключ, значение),
get – получить значение для данного ключа,
containsKey – проверить, присутствует ли данный ключ,
containsValue –проверить, присутствует ли данное значение
size – определение размера коллекции (количества пар),
isEmpty – проверка присутствия элементов
Пример: y = x2; I = U/R и так далее.
Вопрос 29. Сравнительный анализ реализаций ArrayList и LinkedList.
ArrayList — реализует интерфейс List. Как известно, в Java массивы имеют фиксированную длину, и после того как массив создан, он не может расти или уменьшаться. ArrayList может менять свой размер во время исполнения программы, при этом не обязательно указывать размерность при создании объекта. Элементы ArrayList могут быть абсолютно любых типов в том числе и null.
Конструктор : ArrayList< Тип > имя = new ArrayList<Тип>();
LinkedList — реализует интерфейс List. Является представителем двунаправленного списка, где каждый элемент структуры содержит указатели на предыдущий и следующий элементы. Итератор поддерживает обход в обе стороны. Реализует методы получения, удаления и вставки в начало, середину и конец списка. Порядок элементов соответствует последовательности добавления.
Конструктор : LinkedList<Тип> имя = new LinkedList<Тип>();
ArrayList
Реализация интерфейса List в виде массива переменного размера. Реализует все опциональные операции списка; разрешает добавление любых элементов, в том числе null . (Этот класс, грубо говоря, эквивалентен классу Vector ).
LinkedList
Реализация интерфейса List в виде связного списка. Реализует все опциональные операции списка; разрешает добавление любых элементов, в том числе null . В дополнение к методам интерфейса List , класс LinkedList предоставляет однотипно названные методы для получения, удаления и вставки элемента в начало и конец списка. Эти методы позволяют использовать связные списки в качестве очередей, стеков и очередей с двусторонним доступом.
В ArrayList доступ к элементам быстрее, в отличие от LinkedList в котором операции вставки элементов быстрее. Обращаться к элементам ArrayList можно по индексу. Обращаться к элементам LinkedList можно только пройдя все предыдущие элементы. LinkedList выгодно использовать, если количество элементов постоянно меняется. ArrayList - когда нужно часто обращаться к элементам списка.
Вопрос 30. Параметры по которым сравнивают реализации коллекций.
Основные реализации коллекций.
HashSet — множество базирующееся на хэш-кодах элементов. Порядок элементов при обходе(итерации) не определен. Не допускает дубликатов.
TreeSet — множество отсортированное в натуральном порядке. Не допускает дубликатов.
LinkedHashSet — множество базирующееся на хэш-кодах элементов. Порядок элементов соответствует последовательности добавления в коллекцию.
LinkedList — связанный список. Каждый элемент ссылается на 2 соседних. Порядок элементов соответствует последовательности добавления.
ArrayList — индексированный список. Каждому элементу соответствует индекс типа int.
HashMap — ассоциативный массив. В качестве уникальных ключей используется множество базирующееся на хэш-кодах. Порядок элементов не определен.
LinkedHashMap — ассоциативный массив. В качестве уникальных ключей используется множество базирующееся на хэш-кодах. Порядок элементов соответствует последовательности добавления.
TreeMap — ассоциативный массив. В качестве уникальных ключей используется отсортированное в натуральном порядке множество.
«±»
означает, что функция для коллекции
доступна, но ее использование требует
большей бдительности, т.к. может повлечь
большую трату ресурсов процессора.
Реализации коллекций отличаются способами хранения элементов данных и механизмами доступа к ним. В приведенной ниже таблице приводятся характеристики времени, требуемого на выполнение основных операций в различных реализациях коллекций (а именно, тип зависимости затрачиваемого на выполнение операции времени от размера коллекции):
По поводу реализаций Map :
Класс HashMap полностью реализует интерфейс Map , а также итератор типа iterator . Класс HashMap очень похож на класс Hashtabie и может использоваться в тех же ситуациях.
Класс ТгееМар полностью реализует интерфейс sortedMap . Он реализован как бинарное дерево поиска, значит его элементы хранятся в упорядоченном виде. Это значительно ускоряет поиск нужного элемента.
Порядок задается либо естественным следованием элементов, либо объектом, реализующим интерфейс сравнения Comparator.