Какова оценка временной сложности операций над элементами из HashMap? Гарантирует ли HashMap указанную сложность выборки элемента?
В общем случае операции добавления, поиска и удаления элементов занимают константное время.
Данная сложность не гарантируется, т.к. если хэш-функция распределяет элементы по корзинам равномерно, временная сложность станет не хуже Логарифмического времени O(log(N)), а в случае, когда хэш-функция постоянно возвращает одно и то же значение, HashMap превратится в связный список со сложностью О(n).
Пример кода двоичного поиска приведен выше.
В общем случае операции добавления, поиска и удаления элементов занимают константное время.
Данная сложность не гарантируется, т.к. если хэш-функция распределяет элементы по корзинам равномерно, временная сложность станет не хуже Логарифмического времени O(log(N)), а в случае, когда хэш-функция постоянно возвращает одно и то же значение, HashMap превратится в связный список со сложностью О(n).
Пример кода двоичного поиска приведен выше.
👍20
#Вопросы_с_собеседования
❓Сколько выделяется дополнительно памяти при вызове LinkedList.add()?
Ответ:
Создается один новый экземпляр вложенного класса Node.
❓Сколько выделяется дополнительно памяти при вызове LinkedList.add()?
Ответ:
👍25👎4
#Вопросы_с_собеседования
Что такое Spring Initializr?
Spring Initializr — это удобный способ создать проект на Spring Boot.
Для этого можно перейти на сайт Spring Initializr, выбрать инструмент управления зависимостями (Maven или Gradle), язык (Java, Kotlin или Groovy), схему упаковки (Jar или War), версию, зависимости и загрузить проект. Это создаст для нас каркас проекта и сэкономит время на настройку, поэтому мы сможем сосредоточиться на добавлении бизнес-логики.
Даже когда мы используем мастер создания нового проекта в IDE (например, STS или Eclipse с плагином STS) для создания проекта со Spring Boot, под капотом используется Spring Initializr.
Что такое Spring Initializr?
Spring Initializr — это удобный способ создать проект на Spring Boot.
Для этого можно перейти на сайт Spring Initializr, выбрать инструмент управления зависимостями (Maven или Gradle), язык (Java, Kotlin или Groovy), схему упаковки (Jar или War), версию, зависимости и загрузить проект. Это создаст для нас каркас проекта и сэкономит время на настройку, поэтому мы сможем сосредоточиться на добавлении бизнес-логики.
Даже когда мы используем мастер создания нового проекта в IDE (например, STS или Eclipse с плагином STS) для создания проекта со Spring Boot, под капотом используется Spring Initializr.
Spring Initializr
Initializr generates spring boot project with just what you need to start quickly!
👍20
#Вопросы_с_собеседования
❓Каким образом можно создать поток?
• Создать потомка класса
• Создать объект класса
• Вызвать метод
❓Каким образом можно создать поток?
• Создать потомка класса
Thread
и переопределить его метод run()
;• Создать объект класса
Thread
, передав ему в конструкторе экземпляр класса, реализующего интерфейс Runnable
. Эти интерфейс содержит метод run()
, который будет выполняться в новом потоке. Поток закончит выполнение, когда завершится его метод run()
.• Вызвать метод
submit()
у экземпляра класса реализующего интерфейс ExecutorService
, передав ему в качестве параметра экземпляр класса реализующего интерфейс Runnable
или Callable
(содержит метод call()
, в котором описывается логика выполнения).👍22
#Вопросы_с_собеседования
❓Как вывести на экран 10 случайных чисел, используя forEach()?
Ответ на картинке.
❓Как вывести на экран 10 случайных чисел, используя forEach()?
Ответ на картинке.
👍46
#Вопросы_с_собеседования
❓Чем LinkedHashSet отличается от HashSet?
❓Чем LinkedHashSet отличается от HashSet?
LinkedHashSet
отличается от HashSet
только тем, что в его основе лежит LinkedHashMap
вместо HashMap
. Благодаря этому порядок элементов при обходе коллекции является идентичным порядку добавления элементов (insertion-order). При добавлении элемента, который уже присутствует в LinkedHashSet
(т.е. с одинаковым ключом), порядок обхода элементов не изменяется.👍17
👍42👎3
#Вопросы_с_собеседования
❓Какой символ является разделителем при указании пути в файловой системе?
Для различных операционных систем символ разделителя различается. Для Windows это
В Java получить разделитель для текущей операционной системы можно через обращение к статическому полю
❓Какой символ является разделителем при указании пути в файловой системе?
Для различных операционных систем символ разделителя различается. Для Windows это
\
, для Linux - /
.В Java получить разделитель для текущей операционной системы можно через обращение к статическому полю
File.separator
.👍32
#Вопросы_с_собеседования
❓Что такое ZonedDateTime?
Документацию можно найти здесь.
❓Что такое ZonedDateTime?
java.time.ZonedDateTime
— аналог java.util.Calendar
, класс с самым полным объемом информации о временном контексте в календарной системе ISO-8601. Включает временную зону, поэтому все операции с временными сдвигами этот класс проводит с её учётом.Документацию можно найти здесь.
👍12😱3
Apache Struts
Apache Struts — фреймворк с открытым исходным кодом для создания Java EE веб-приложений. Struts был создан для того, чтобы чётко разделить модель (бизнес-логику), представление (HTML-страницы) и контроллер (отвечающий за передачу данных от модели к представлению и обратно).
https://github.com/apache/struts
Apache Struts — фреймворк с открытым исходным кодом для создания Java EE веб-приложений. Struts был создан для того, чтобы чётко разделить модель (бизнес-логику), представление (HTML-страницы) и контроллер (отвечающий за передачу данных от модели к представлению и обратно).
https://github.com/apache/struts
GitHub
GitHub - apache/struts: Apache Struts is a free, open-source, MVC framework for creating elegant, modern Java web applications
Apache Struts is a free, open-source, MVC framework for creating elegant, modern Java web applications - apache/struts
👍9
Метод equalsIgnoreCase()
Сравнивает данную строку с другой строкой, игнорируя регистр. Две строки считаются равными, если они имеют одинаковую длину и соответствующие символы у двух строк равны, игнорируя регистр букв.
Возвращает значение true, если аргумент не равен null и строки равны, без учета регистра букв; в противном случае значение false.
Сравнивает данную строку с другой строкой, игнорируя регистр. Две строки считаются равными, если они имеют одинаковую длину и соответствующие символы у двух строк равны, игнорируя регистр букв.
Возвращает значение true, если аргумент не равен null и строки равны, без учета регистра букв; в противном случае значение false.
👍39
#Вопросы_с_собеседования
❓О чем говорит ключевое слово throws?
Ответ:
Модификатор throws прописывается в заголовке метода и указывает на то, что метод потенциально может выбросить исключение с указанным типом.
❓О чем говорит ключевое слово throws?
Ответ:
👍29❤2😱2
Как конвертировать ArrayList в массив на Java?
Рассмотрим пример простой программы, которая преобразовывает ArrayList в массив в Java.
Мы используем реализацию метода toArray(T[] a) класса ArrayList, чтобы конвертировать ArrayList в массив на Java. «Под капотом» этого метода используется метод Arrays.copyOf(), чтобы конвертировать ArrayList в Array.
Рассмотрим пример простой программы, которая преобразовывает ArrayList в массив в Java.
Мы используем реализацию метода toArray(T[] a) класса ArrayList, чтобы конвертировать ArrayList в массив на Java. «Под капотом» этого метода используется метод Arrays.copyOf(), чтобы конвертировать ArrayList в Array.
👍24
#Вопросы_с_собеседования
❓Какое худшее время работы метода get(key) для ключа, который есть в HashMap?
O(N). Худший случай - это поиск ключа в
Но начиная с Java 8, после определенного числа элементов в списке, связный список преобразовывается в красно-черное дерево и сложность выборки, даже в случае плохой хеш-функции, не хуже логарифмической O(log(N)).
❓Какое худшее время работы метода get(key) для ключа, который есть в HashMap?
O(N). Худший случай - это поиск ключа в
HashMap
, вырожденного в список по причине совпадения ключей по hashCode()
и для выяснения хранится ли элемент с определённым ключом может потребоваться перебор всего списка.Но начиная с Java 8, после определенного числа элементов в списке, связный список преобразовывается в красно-черное дерево и сложность выборки, даже в случае плохой хеш-функции, не хуже логарифмической O(log(N)).
👍31👎2