Собеседование по коллекциям в языке Kotlin
Чем отличаются коллекции Set и List?
List 1. Может хранить дубликаты 2. Содержит методы для обращения к элементам по индексу Set 1. Не может хранить дубликаты 2. Не
Чем отличаются коллекции ArrayList и LinkedList?
ArrayList основан на массиве LinkedList представляет собой связный список
В каких случаях стоит использовать LinkedList вместо ArrayList?
Если приходится часто вставлять или удалять элементы из начала коллекции - LinkedList ArrayList используется вместо массивов
Перечислите основные реализации коллекций Set и скажите, чем они отличаются друг от друга
HashSet – элементы хранятся беспорядочно. Сложность всех операций в лучшем случае О(1) LinkedHashSet – элементы хранятся в
Дан следующий класс: data class User(val id: Int, val age: Int) Как будут отсортированы экземпляры этого класса, если мы их
1. Если не реализован интерфейс Comporable, и при создании коллекции не был передан Comporator, то программа завершится с
Дан следующий класс: data class User(val id: Int, val age: Int) Как будут отсортированы экземпляры этого класса, если мы их
Никак. Сортировка происходит на основании ключей в коллекции TreeMap, а не на основании значений.
Зачем нужны методы equals и hashcode?
Equals – нужен для сравнения объектов Hashcode – используется для представления любого объекта в виде числа. Используется для
Перечислите правила для методов equals и hashcode
1. Переопределил equals – переопредели и hashcode 2. Если хэш-коды объектов разные, то и объекты точно разные 3. Если объекты
Могут ли в одной коллекции Map хранится два одинаковых ключа/значения?
Два одинаковых ключа быть не может, ключи должны быть уникальными. Одинаковых значений может быть сколько угодно
Алгоритмическая сложность метода contains в коллекции HashSet в лучшем случае равна О(1). Как удалось добиться такого
В коллекции HashSet в лучшем случае при вызове метода contains не происходит перебора элементов в коллекции: 1. У объекта,
Можно ли использовать экземпляры класса с изменяемыми свойствами в качестве ключей в коллекции HashMap? Какие могут быть
1. Использовать можно, но не желательно 2. Если после добавления объекта в коллекцию изменить значение свойства, от которого
Какой интерфейс находится на вершине иерархии коллекций, и какое у него предназначение?
На вершине иерархии находится интерфейс Iterable. Он используется в паттерне Iterator, для того чтобы все элементы коллекции
Почему интерфейс Map находится вне основной иерархии коллекций?
Коллекции Map работают не с одним объектом, а с парами объектов Ключ-Значение, по этой причине коллекции Map не могут
Какая алгоритмическая сложность операций в коллекции ArrayList?
Какая алгоритмическая сложность операций в коллекции LinkedList?
Какая алгоритмическая сложность операций в коллекции HashSet/LinkedHashSet?
Какая алгоритмическая сложность операций в коллекции TreeSet?
Какая алгоритмическая сложность операций в коллекции HashMap/LinkedHashMap?
Какая алгоритмическая сложность операций в коллекции TreeMap?
Мы вам перезвоним!
90.29K
Category: programmingprogramming

Собеседование_по_коллекциям

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.

ArrayList
add(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.

LinkedList
add(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/LinkedHashSet
add(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.

TreeSet
add(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/LinkedHashMap
put(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.

TreeMap
put(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)

40. Мы вам перезвоним!

English     Русский Rules