Похожие презентации:
Собеседование_по_коллекциям
1. Собеседование по коллекциям в языке Kotlin
2. Чем отличаются коллекции Set и List?
3. List 1. Может хранить дубликаты 2. Содержит методы для обращения к элементам по индексу Set 1. Не может хранить дубликаты 2. Не
содержит методов для обращения кэлементам по индексу
4. Чем отличаются коллекции ArrayList и LinkedList?
5. ArrayList основан на массиве LinkedList представляет собой связный список
6. В каких случаях стоит использовать LinkedList вместо ArrayList?
7. Если приходится часто вставлять или удалять элементы из начала коллекции - LinkedList ArrayList используется вместо массивов
8. Перечислите основные реализации коллекций Set и скажите, чем они отличаются друг от друга
9. HashSet – элементы хранятся беспорядочно. Сложность всех операций в лучшем случае О(1) LinkedHashSet – элементы хранятся в
порядкедобавления. Сложность всех операций в лучшем
случае О(1)
TreeSet – элементы хранятся в отсортированном
виде. Сложность всех операций в лучшем случае
О(logN)
10. Дан следующий класс: data class User(val id: Int, val age: Int) Как будут отсортированы экземпляры этого класса, если мы их
добавим вколлекцию TreeSet?
11. 1. Если не реализован интерфейс Comporable, и при создании коллекции не был передан Comporator, то программа завершится с
ошибкой2. Если какое-то из этих условий выполнено, то
сортировка будет зависеть от реализации этих
интерфейсов
12. Дан следующий класс: data class User(val id: Int, val age: Int) Как будут отсортированы экземпляры этого класса, если мы их
добавим вколлекцию TreeMap в качестве значений?
13. Никак. Сортировка происходит на основании ключей в коллекции TreeMap, а не на основании значений.
14. Зачем нужны методы equals и hashcode?
15. Equals – нужен для сравнения объектов Hashcode – используется для представления любого объекта в виде числа. Используется для
определения позиции объекта в хэш-таблице16. Перечислите правила для методов equals и hashcode
17. 1. Переопределил equals – переопредели и hashcode 2. Если хэш-коды объектов разные, то и объекты точно разные 3. Если объекты
равны по equals, то и хэш-коды уних одинаковые
4. Если хэш-коды объектов равны – это еще не
значит, что объекты одинаковые.
18. Могут ли в одной коллекции Map хранится два одинаковых ключа/значения?
19. Два одинаковых ключа быть не может, ключи должны быть уникальными. Одинаковых значений может быть сколько угодно
20. Алгоритмическая сложность метода contains в коллекции HashSet в лучшем случае равна О(1). Как удалось добиться такого
поведения?21. В коллекции HashSet в лучшем случае при вызове метода contains не происходит перебора элементов в коллекции: 1. У объекта,
который передан в качестве параметраполучается хэш-код
2. На основании этого хэш-кода мы за одну операцию
получаем номер ячейки, в которой этот объект лежит
3. При нормальном распределении и минимальном
количестве коллизий в этой ячейке либо будет лежать
один объект, либо будет пусто.
22. Можно ли использовать экземпляры класса с изменяемыми свойствами в качестве ключей в коллекции HashMap? Какие могут быть
последствия?23. 1. Использовать можно, но не желательно 2. Если после добавления объекта в коллекцию изменить значение свойства, от которого
зависит хэш-код, токоллекция будет работать некорректно. Этот объект
нельзя будет найти при помощи метода contains и его
нельзя будет из коллекции удалить
24. Какой интерфейс находится на вершине иерархии коллекций, и какое у него предназначение?
25. На вершине иерархии находится интерфейс Iterable. Он используется в паттерне Iterator, для того чтобы все элементы коллекции
можно былоперебирать в цикле for (forEach)
26. Почему интерфейс Map находится вне основной иерархии коллекций?
27. Коллекции Map работают не с одним объектом, а с парами объектов Ключ-Значение, по этой причине коллекции Map не могут
реализоватьметоды, объявленные в основной иерархии
коллекций.
28. Какая алгоритмическая сложность операций в коллекции ArrayList?
29.
ArrayListadd(element: T)
O(1)
get(index: Int)
O(1)
add(index: Int, element: T)
O(N)
removeAt(index: Int)
O(N)
remove(element: T)
O(N)
contains(element: T)
O(N)
30. Какая алгоритмическая сложность операций в коллекции LinkedList?
31.
LinkedListadd(element: T)
O(1)
get(index: Int)
O(N)
add(index: Int, element: T)
O(1)*
removeAt(index: Int)
O(1)*
remove(element: T)
O(1)*
contains(element: T)
O(N)
32. Какая алгоритмическая сложность операций в коллекции HashSet/LinkedHashSet?
33.
HashSet/LinkedHashSetadd(element: T)
O(1)/O(logN)
get(index: Int)
-
add(index: Int, element: T)
-
removeAt(index: Int)
-
remove(element: T)
O(1)/O(logN)
contains(element: T)
O(1)/O(logN)
34. Какая алгоритмическая сложность операций в коллекции TreeSet?
35.
TreeSetadd(element: T)
O(logN)
get(index: Int)
-
add(index: Int, element: T)
-
removeAt(index: Int)
-
remove(element: T)
O(logN)
contains(element: T)
O(logN)
36. Какая алгоритмическая сложность операций в коллекции HashMap/LinkedHashMap?
37.
HashMap/LinkedHashMapput(key: K, value: V)
O(1) / O(logN)
get(key: K)
O(1)/O(logN)
add(index: Int, element: T)
-
removeAt(index: Int)
-
remove(key: K)
O(1)/O(logN)
containsKey(key: K)
O(1)/O(logN)
containsValue(value: V)
O(N)
38. Какая алгоритмическая сложность операций в коллекции TreeMap?
39.
TreeMapput(key: K, value: V)
O(logN)
get(key: K)
O(logN)
add(index: Int, element: T)
-
removeAt(index: Int)
-
remove(key: K)
O(logN)
containsKey(key: K)
O(logN)
containsValue(value: V)
O(N)
Программирование