DoubleToIntFunction - операция принимающая аргумент класса Double и возвращающая результат типа Integer;
DoubleToLongFunction - операция принимающая аргумент класса Double и возвращающая результат типа Long;
IntToDoubleFunction - операция принимающая аргумент класса Integer и возвращающая результат типа Double;
IntToLongFunction - операция принимающая аргумент класса Integer и возвращающая результат типа Long;
LongToDoubleFunction - операция принимающая аргумент класса Long и возвращающая результат типа Double;
LongToIntFunction - операция принимающая аргумент класса Long и возвращающая результат типа Integer.
Для чего нужны функциональные интерфейсы ToDoubleBiFunction<T,U>, ToIntBiFunction<T,U> и ToLongBiFunction<T,U>?
ToDoubleBiFunction<T,U> - операция принимающая два аргумента классов T и U и возвращающая результат типа Double;
ToLongBiFunction<T,U> - операция принимающая два аргумента классов T и U и возвращающая результат типа Long;
ToIntBiFunction<T,U> - операция принимающая два аргумента классов T и U и возвращающая результат типа Integer.
Для чего нужны функциональные интерфейсы ToDoubleFunction<T>, ToIntFunction<T> и ToLongFunction<T>?
|
|
ToDoubleFunction<T> - операция принимающая аргумент класса T и возвращающая результат типа Double;
ToLongFunction<T> - операция принимающая аргумент класса T и возвращающая результат типа Long;
ToIntFunction<T> - операция принимающая аргумент класса T и возвращающая результат типа Integer.
Для чего нужны функциональные интерфейсы ObjDoubleConsumer<T>, ObjIntConsumer<T> и ObjLongConsumer<T>?
ObjDoubleConsumer<T> - операция, которая принимает два аргумента классов T и Double, производит с ними некоторое действие и ничего не возвращает;
ObjLongConsumer<T> - операция, которая принимает два аргумента классов T и Long, производит с ними некоторое действие и ничего не возвращает;
ObjIntConsumer<T> - операция, которая принимает два аргумента классов T и Integer, производит с ними некоторое действие и ничего не возвращает.
42. Проверяемые аннотации и аннотации на типы данных (понятие аннотации).
Как определить повторяемую аннотацию?
Чтобы определить повторяемую аннотацию, необходимо создать аннотацию-контейнер для списка повторяемых аннотаций и обозначить повторяемую мета-аннотацией @Repeatable:
@interface Schedulers
{
Scheduler[] value();
}
@Repeatable(Schedulers.class)
@interface Scheduler
{
String birthday() default "Jan 8 1935";
}
Java Collection Framework (JCF)
43. Понятие коллекции.
Что такое «коллекция»?
«Коллекция» - это структура данных, набор каких-либо объектов. Данными (объектами в наборе) могут быть числа, строки, объекты пользовательских классов и т.п.
44. Иерархия коллекций.
Назовите основные интерфейсы JCF и их реализации.
На вершине иерархии в Java Collection Framework располагаются 2 интерфейса: Collection и Map. Эти интерфейсы разделяют все коллекции, входящие во фреймворк на две части по типу хранения данных: простые последовательные наборы элементов и наборы пар «ключ — значение» соответственно.
|
|
Интерфейс Collection расширяют интерфейсы:
● List (список) представляет собой коллекцию, в которой допустимы дублирующие значения. Элементы такой коллекции пронумерованы, начиная от нуля, к ним можно обратиться по индексу. Реализации:
-ArrayList - инкапсулирует в себе обычный массив, длина которого автоматически увеличивается при добавлении новых элементов.
-LinkedList (двунаправленный связный список) - состоит из узлов, каждый из которых содержит как собственно данные, так и две ссылки на следующий и предыдущий узел.
-Vector — реализация динамического массива объектов, методы которой синхронизированы.
-Stack — реализация стека LIFO (last-in-first-out).
● Set (сет) описывает неупорядоченную коллекцию, не содержащую повторяющихся элементов. Реализации:
-HashSet - использует HashMap для хранения данных. В качестве ключа и значения используется добавляемый элемент. Из-за особенностей реализации порядок элементов не гарантируется при добавлении.
-LinkedHashSet — гарантирует, что порядок элементов при обходе коллекции будет идентичен порядку добавления элементов.
-TreeSet — предоставляет возможность управлять порядком элементов в коллекции при помощи объекта Comparator, либо сохраняет элементы с использованием «natural ordering».
● Queue (очередь) предназначена для хранения элементов с предопределенным способом вставки и извлечения FIFO (first-in-first-out):
-PriorityQueue — предоставляет возможность управлять порядком элементов в коллекции при помощи объекта Comparator, либо сохраняет элементы с использованием «natural ordering».
-ArrayDeque — реализация интерфейса Deque, который расширяет интерфейс Queue методами, позволяющими реализовать конструкцию вида LIFO (last-in-first-out).
Расположите в виде иерархии следующие интерфейсы: List, Set, Map, SortedSet, SortedMap, Collection, Iterable, Iterator, NavigableSet, NavigableMap.
Iterable
Collection
List
Set
SortedSet
NavigableSet
Map
SortedMap
NavigableMap
Iterator
Почему Map — это не Collection, в то время как List и Set являются Collection?
Collection представляет собой совокупность некоторых элементов. Map - это совокупность пар «ключ-значение».