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?

Сопоставимые —

  1. Comparable обеспечивает единую последовательность сортировки, другими словами, мы можем сортировать коллекцию на основе только одного элемента, например — id или name.
  2. Comparable предоставляет метод compareTo() для сортировки элементов.
  3. Мы можем отсортировать элементы списка типа Comparable методом Collections.sort(List).

Сравнитель —

  1. Компаратор обеспечивает несколько последовательностей сортировки. Другими словами, мы можем сортировать коллекцию на основе нескольких элементов, таких как идентификатор и имя.
  2. Компаратор предоставляет метод compare() для сортировки элементов.
  3. Мы можем отсортировать элементы списка типа 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.



Прокомментируйте дополнительные вопросы о коллекции, если вам задавали их во время собеседования и не рассматривали в этой статье.

Если это было полезно, хлопните в ладоши и подпишитесь на другие статьи :)