Для чего нужны функциональные интерфейсы вида _To_Function?

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 - это совокупность пар «ключ-значение».

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: