1. Что такое Java Collection Framework?
Коллекция Java — это структура, обеспечивающая архитектуру для хранения объектов и управления ими с использованием различных классов, интерфейсов и алгоритмов. Вот несколько примеров коллекций Java: List, Set, Map, Queue и т. д.
2. В чем разница между ArrayList и LinkedList?
Замечание относительно ArrayList и LinkedList
Реализация ArrayList, которая использует массив для внутреннего хранения элементов, имеет быстрое индексированное время, что означает очень быстрый доступ к элементам из ArrayList, при доступе к элементам мы можем просто передать индекс элементов, и он будет получен.
Удаление из ArrayList — тяжелая операция, потому что для заполнения пробела удаленного элемента все элементы массива должны быть перемещены в память, с другой стороны, LinkedList не использует массив для хранения элементов, которые он использует. Doubly LinkedList , что означает, что он имеет Узлоподобная структура, в которой каждый узел имеет данные, а также ссылку на следующий и предыдущий элемент, что упрощает выполнение операции удаления.
3. В чем разница между Collection и Collections?
Коллекция. Коллекция — это интерфейс, представляющий группу объектов в одном блоке. пример — Список, Набор, Очередь, Карта
Коллекции. Коллекция — это класс, предоставляющий методы для работы с коллекцией. пример — ArrayList, LinkedList, HashMap
4. В чем разница между списком и набором?
5. Как решить, когда использовать ArrayList и когда использовать LinkedList.
Когда требуется, чтобы элементы прошли через множество операций манипуляции, таких как обновление и удаление, должен использоваться LinkedList, тогда как, если требуется более быстрый доступ к элементам в списке, должен использоваться ArrayList.
6. Можем ли мы добавить нулевой элемент в TreeSet или HashSet?
Объект HashSet допускает только один нулевой ключ и любое количество нулевых значений. TreeSet не допускает нулевых значений, он генерирует исключение во время выполнения, если мы пытаемся вставить нулевые значения в TreeSet.
7. Разница между ArrayList и вектором?
ПРИМЕЧАНИЕ. ArrayList предпочтительнее, когда нет особых требований к использованию вектора. ArrayList не синхронизируется по умолчанию, но мы можем синхронизировать ArrayList с помощью Collections. Метод синхронизированного списка
8. Что такое приоритетная очередь в Java?
Известно, что Очередь работает в порядке FIFO элементов, иногда требуется обработка элементов очереди в соответствии с приоритетом, и тогда в игру вступает Приоритетная Очередь.
Priority Queue упорядочивает элементы в соответствии с их естественным порядком или с помощью компаратора, предоставленного во время конструктора.
9. Объясните отказоустойчивые и отказоустойчивые итераторы в Java?
Мы используем итератор для обхода объектов коллекции.
Fail Fast Iterators — при обходе элементов коллекции, если мы попытаемся добавить или удалить элементы, это не позволит нам сделать это, итератор выйдет из строя и выдаст исключение ConcurrentModificationException.
Отказоустойчивые итераторы — при обходе элементов коллекции он не выполняет итерацию по фактическому объекту коллекции, а создает копию объекта и работает с копией, поэтому отказоустойчивые итераторы позволяют вам добавлять или удалять элементы во время обхода.
10. Разница между Iterator и ListIterator?
11. Как вы можете синхронизировать ArrayList в java?
ArrayList можно синхронизировать с помощью метода Collections.synchronizedList.
public static void main (String[] args) { List<String> list = Collections.synchronizedList(new ArrayList<String>()); list.add("one"); list.add("two"); list.add("three"); synchronized(list) { // must be in synchronized block Iterator it = list.iterator(); while (it.hasNext()) System.out.println(it.next()); } }
12. Какова временная сложность с точки зрения большой нотации O для отправки и извлечения элементов из HashMap?
При поиске элемента в хеш-карте в лучшем случае элемент находится непосредственно в месте, указанном его ключом. Итак, нам нужно только вычислить хэш-ключ, а затем получить элемент. Это достигается за постоянное время. Таким образом, в лучшем случае сложность составляет O (1).
13. Какие классы коллекций являются потокобезопасными в Java?
Классы коллекций, которые потокобезопасны в Java, — это Stack, Vector, Properties и Hashtable.
14. Разница между сопоставимым и компаратором java?
Сопоставимые —
- Comparable обеспечивает единую последовательность сортировки, другими словами, мы можем сортировать коллекцию на основе только одного элемента, например — id или name.
- Comparable предоставляет метод compareTo() для сортировки элементов.
- Мы можем отсортировать элементы списка типа Comparable методом Collections.sort(List).
Сравнитель —
- Компаратор обеспечивает несколько последовательностей сортировки. Другими словами, мы можем сортировать коллекцию на основе нескольких элементов, таких как идентификатор и имя.
- Компаратор предоставляет метод compare() для сортировки элементов.
- Мы можем отсортировать элементы списка типа Comparator методом Collections.sort(List, Comparator).
15.Разница между HashSet и HashMap?
16. Что такое IdentityHashMap?
IdentityHashMap реализует интерфейс карты с помощью HashTable.
Общий контракт HashMap основан на сравнении объектов на основе значений с использованием метода equals.
IdentityHashMap нарушает общий контракт HashMap и сравнивает объекты на основе их ссылки.
Проще говоря, класс IdentityHashMap в Java представляет собой основанную на хэш-таблице реализацию интерфейса Map, которая использует равенство ссылок вместо равенства объектов при сравнении ключей (и значений).
17. Что такое оператор Даймонда в Java?
Мы используем оператор Даймонда (‹›), чтобы упростить использование дженериков в Java. Мы можем создать объект, не упоминая универсальный тип в правой части выражения, как показано ниже.
List<String> list = new ArrayList<>();
18. Как сделать коллекцию только для чтения в java?
Сделать коллекцию доступной только для чтения означает просто ограничить манипулирование коллекцией и разрешить только выборку элементов. В Java есть разные методы для разных типов коллекций, таких как unmodifiedCollection(), unmodifiableMap(), unmodifiableSet() и т. д.
19. Объясните иерархию коллекций.
20. Объясните классы коллекций и интерфейсы.
Ответы на вопросы 19, 20 и понимание основных концепций Collection Framework см. в статье ниже.
21. Вопросы, связанные с интервью, связанные с HashMap, см. в подробной статье о работе Hashmap.
Прокомментируйте дополнительные вопросы о коллекции, если вам задавали их во время собеседования и не рассматривали в этой статье.
Если это было полезно, хлопните в ладоши и подпишитесь на другие статьи :)