Топ 60 интервюта за колекции Java за 2021 г.


колекция Интервю ЯваПрегледи 200

По-долу са най-често задаваните въпроси за интервюта с колекции Java с отговори. Това ще ви помогне да пробиете въпроси за интервюта за колекции през 2021 година.

Съдържание

1. Какво представлява рамката?

Рамката е предварително дефинирана архитектура, която съдържа набор от няколко класа и интерфейси, които могат да се използват директно, без никакви модификации.

2. Какво представлява рамката за събиране?

В Java колекцията е единичен обект, който представлява група обекти, а рамката е дефинирана архитектура, която съдържа интерфейси и класове. Следователно рамката на Java Collection е архитектура, която определя a определен на интерфейси, класове и алгоритми. Тази рамка е достъпна от JDK 1.2. Той може също така да извършва операции като търсене, вмъкване, сортиране, изтриване, манипулиране и т.н.

3. Какво е клас „Колекции“?

Collections е клас в Java, който е част от пакета java.util и съдържа различни статични методи, които можем да използваме за извършване на операции върху Collections. Той също така съдържа методи за различни алгоритми като сортиране, двоично търсене и др.

4. Какви са разликите между масив и колекции?

Arrayколекция
Той е с фиксиран размер и не може да промени размера по време на изпълнениеРазмерът може да се променя динамично и не е фиксиран.
Той може да съхранява само същия тип данниТой може да съхранява комбинация от стойности на типа данни
Той няма вградени методи като сортиране или търсенеТой има вградени методи за сортиране и търсене
Изпълнението е бързоИзпълнението е бавно
Ефективността на паметта е по-малкаЕфективността на паметта е повече
Той не се прилага въз основа на каквато и да е структура на данниВсеки клас в Collection е реализиран въз основа на някаква структура от данни

5. Какви са различните интерфейси, присъстващи в рамките на Collection?

Интерфейс за събиране: Това е основният интерфейс на йерархията на рамката за събиране. Другите интерфейси, които присъстват в рамките на Collection са интерфейсите Map и Iterator. Освен това тези интерфейси имат подинтерфейси, тъй като няма директно изпълнение за интерфейса на Collection.

Интерфейсите на Collection съдържат списък, Set и Queue интерфейси.

Интерфейс на списъка: Това е подредена колекция от елементи, която позволява съхраняване на дублирани стойности.

Задайте интерфейс: Това е неподредена колекция от елементи и не позволява дублирани стойности.

Интерфейс на опашката: Той изпълнява опашката структура на данни и следва концепцията FIFO (First-In-First-Out).

Deque интерфейс: Това е опашка с двоен край, която реализира както стека, така и опашката и следователно поддържа както FIFO, така и LIFO.

Интерфейс на картата: Съхранява данни под формата на двойки ключ-стойност и ние можем да съхраняваме само уникални ключове.

6. Какви са разликите между ArrayList и Vector?

ArrayListВектор
ArrayList не се синхронизираВекторът се синхронизира
Това не е наследствен класТова е наследствен клас
Той може да увеличи размера си с 50% от размера на масиваТой може да увеличи размера си чрез удвояване
Не е безопасно за нишкиТой е безопасен за конци
Използва само Iterator за обхожданеИзползва както преброяване, така и итератор за обхождане
Изпълнението на ArrayList е по-бързоЕфективността на вектора е сравнително по-бавна

7. Какви са разликите между ArrayList и LinkedList?

ArrayListLinkedList
Използва динамичен масив за съхраняване на елементиИзползва Double LinkedList за съхраняване на елементи
Производителността е по-бавнаИзпълнението е по-бързо
Може да се използва за изпълнение само на СписъкМоже да се използва за внедряване на Списък и Опашка
Осигурява произволен достъпНе предоставя произволен достъп
Заема по-малко памет, тъй като съхранява само обектЗаема повече памет, тъй като съхранява както обекта, така и препратката към обекта
get (int index) дава ефективност на O (1)get (int index) дава производителност на O (n)
Изпълнението на операцията за отстраняване в най-лошия случай е O (n), а в най-добрия случай е O (1)Операцията за отстраняване дава ефективност на O (1)
Методът на добавяне дава производителност на O (n) в най-лошия случайМетодът на добавяне дава ефективност на O (1)

8. Какви са разликите между Iterator и ListIterator?

ИтераторListIterator
Това е универсален итераторТова не е универсален итератор
Може да се използва за всякакъв вид колекцияМоже да се използва само за класове за изпълнение на Списък
Поддържа само операция за четене и изтриванеПоддържа операции за добавяне, актуализиране, четене и изтриване.
Може да се използва само за предна навигацияМоже да се използва за навигация в посока напред и назад
Това не е двупосочен итераторТова е двупосочен итератор
Използваме метода iterator ()Използваме метода listiterator ().
Не можем да посочим индекса за итерацияМожем да посочим индекса за итерация

9. Какви са разликите между Iterator и Enumeration?

изброяванеИтератор
Предлага се от JDK 1.0Предлага се от JDK 1.2
Това не е универсален итераторТова е универсален итератор
Може да се използва за итерация само на стари колекции като Vector, hashtableМоже да се използва за итерация на всякакви колекции
Поддържа само операция за четенеПоддържа операция за четене и изтриване
Той има дълги имена на методи
Например: hasMoreElements ()
Той има кратки имена на методи
Например: hasNext ()

10. Какви са разликите между Списък и Набор?

списъккомплект
Той може да съхранява дублиращи се елементиТой може да съхранява само уникални елементи
Това е подредена колекцияТова е неподредена колекция
Той има един наследствен клас, който е VectorТой няма наследствен клас
Той може да съхранява произволен брой нулеви стойностиТой може да съхранява само една нулева стойност

11. Какви са разликите между HashSet и TreeSet?

TreeSetHashSet
Поддържа възходящ редНе поддържа никакъв ред
Изчисляването е по-бавноИзчисляването е по-бързо
Разходите за време са log (n)Времето е постоянно

12. Какви са разликите между Set и Map?

комплектКарта
Set съхранява само стойностиКартата съхранява ключ и стойности
Комплектът може да съдържа уникални стойностиКартата може да съдържа уникални ключове и дублирани стойности
Може да съдържа единична нулева стойностТой може да съдържа единичен нулев ключ и множество нулеви стойности

13. Какви са разликите между HashSet и HashMap?

HashSetHashMap
Той реализира интерфейса SetТой реализира интерфейса Map
Той съхранява само стойностиТой съхранява данни под формата на двойка ключ-стойност
Не може да има дублирани стойностиТой може да съдържа дублирани стойности с уникални ключове
Може да има само една нулева стойностТой може да съдържа един нулев ключ с множество нулеви стойности

14. Какви са разликите между HashMap и TreeMap?

TreeMapHashMap
Поддържа възходящ редНе поддържа никакъв ред
Не може да съдържа нулев ключМоже да съдържа един нулев ключ
Това е изпълнение, основано на дървесна структураТова е реализация, базирана на хеш-таблица
Не позволява нулеви стойностиТой позволява множество нулеви стойности
Сортирането е по-бавноСортирането е по-бързо
Използва червено-черна дървовидна структура на даннитеТой използва структура на данни с хеш

15. Какви са разликите между HashMap и HashTable?

HashMapХеш таблица
Той не е синхронизиранТой е синхронизиран
Той не е безопасен за нишки и не може да се споделя между нишкиТой е безопасен за нишки и може да се споделя между нишки
Позволява един нулев ключ и множество нулеви стойностиНе позволява нулев ключ и нулева стойност
Въведено в JDK 1.2Това е наследствен клас
Използваме Iterator, за да преминем през HashmapИзползваме Iterator или Enumeration, за да преминем през Hashtable
Наследява клас AbstractMapНаследява речник клас
Изчисляването е бързоИзчисляването е бавно

16. Какви са разликите между колекция и колекции?

колекцииколекция
Това е класТова е интерфейс
Осигурява методи за сортиране, търсене и синхронизацияОсигурява структура на данни за опашка, списък, набор
Предоставя статични методи за различни операции върху CollectionПредоставя методи за поддържане на структурата на данните

17. Какви са разликите между Comparator и Comparable?

СравняванеСравним
Осигурява множество видове последователностиОсигурява единичен вид последователности
Той има вграден метод, наречен compare ()Той има вграден метод имена compareTo ()
Той е част от пакета java.utilТой е част от пакета java.lang
Действителният клас не е модифициранДействителният клас се модифицира при изпълнението

18. Какво е BlockingQueue?

BlockingQueue е интерфейс, който осигурява паралелност в операции като вмъкване и изтриване на елементи. Това означава, че той вмъква елемент, като изчаква, докато опашката има свободно място, и изтрива елемент, като изчаква, докато опашката не е празна.

19. Какво е предимството на файла Properties?

Файлът на свойството е файл, който помага за промяна или актуализиране на файла, без да е необходимо да се прекомпилира Java класът. Той помага при управлението на данни и е полезен, когато има често актуализиране на файловете.

20. Какво представлява методът hashCode ()?

Методът hashCode () се използва в техниката на хеширане, която връща цяло число, което се използва за съхраняване на двойки ключ-стойност. Той се използва в колекции като HashSet, HashMap и др. Той връща една и съща цялостна стойност, когато двата ключа са идентични. В случай, че и двата обекта са различни, той връща различна целочислена стойност и за двата обекта.

21. Защо заместваме метода equals ()?

Методът equals проверява дали два обекта са равни. Това присъства в клас Object и трябва да го заменим, за да проверим равенството.

22. Как да синхронизирам елементите Списък, Набор и Карта?

Можем да синхронизираме елементите, използвайки синхронизирания метод.

23. Какви са предимствата на генеричните колекции?

  • Не изисква типиране
  • Той проверява по време на компилация и е безопасен за типа.
  • Също така проверява за грешки по време на самото време на компилиране

24. Какво е хеш-сблъсък и как се обработва?

Хеш сблъсъкът е процесът, когато два различни ключа генерират една и съща целочислена стойност или хеш стойност. Можем да избегнем хеш сблъсък, като използваме следните 2 техники:

  • Отделна верига
  • Отворено адресиране

25. Какъв е размерът по подразбиране на коефициента на натоварване при хеширане?

Размерът по подразбиране на коефициента на натоварване е 0.75.

26. Какво е бързо-неуспешно?

Бързото отказ е състояние, при което итераторът изхвърля ConcurrentModificationException, когато има структурна модификация.

27. Каква е разликата между Array и ArrayList?

ArrayArrayList
Той е с фиксиран размерТой е с динамичен размер
Той е статиченТой е динамичен
Той може да съхранява примитивни стойности и обектиТой може да съхранява само обекти

28. Каква е разликата между дължината на масив и размера на ArrayList?

Можем да извлечем дължината на масив, като използваме свойството length за масив. Но ArrayList не поддържа това. Следователно той използва метода size (), за да намери размера на ArrayList. И двете връщат броя на елементите в масив или ArrayList.

29. Как да конвертирате масив в ArrayList и обратно?

Можем да използваме метода asList (), за да преобразуваме масив да се ArrayList и можем да използваме метода toArray (), за да преобразуваме ArrayList в масив.

30. Как да направя Java ArrayList като само за четене?

Когато ArrayList е само за четене, можем да четем само стойностите и не можем да го променяме или актуализираме. Можем да направим това, като използваме метода Collections.unmodifiableCollection ().

31. Как можем да премахнем дубликати от ArrayList?

Ние можем да премахване на дубликати от ArrayList с помощта на HashSet или LinkedHashSet.

32. Какви са новите функции на Колекциите в Java 8?

  • Поддръжка на Java Stream API
  • Много нови методи за подобрения като forEachRemaining () в Iterator, replaceAll (), compute () и merge () методи в Map.
  • Разширение на Iterable интерфейс с метода по подразбиране за forEach ().

33. Защо интерфейсът на Map не разширява интерфейса за събиране?

Интерфейсът на картата представлява данни под формата на двойки ключ-стойност, докато колекциите не поддържат това. Следователно интерфейсът на Map не може да се разглежда като колекция и следователно не е част от рамката на колекцията.

34. Какво е итератор?

Итераторът е интерфейс, който има метод на итератор (), който ни помага да итерираме или да преминем през всички елементи в колекцията.

35. Какви са различните начини за итерация през списък?

Можем да прегледаме списък по два различни начина:

  • Използване на цикъла за всеки
  • Използване на итератор

36. Какви са различните изгледи на колекция, предоставени от интерфейса на картата?

Интерфейсът на картата предоставя следните изгледи на колекция:

  • keySet (): Този метод връща изглед Set на елементите.
  • стойности(): Този метод връща колекция от стойности в картата.
  • entrySet (): Този метод връща изглед Set на съпоставяне на двойка ключ-стойност, присъстващо в картата.

37. Кой клас на колекция осигурява произволен достъп до елементи?

Класове ArrayList, HashMap, TreeMap, HashTable и Vector.

38. Какво е EnumSet?

EnumSet съхранява Enumeration типове данни и изпълнява интерфейса Set. Всички елементи трябва да принадлежат към единичния тип Enum и не позволяват да се съхраняват нулеви стойности.

39. Кои класове за събиране са безопасни за нишки?

Класове Vector, Hashtable, Properties и Stack.

40. Как можем да сортираме списък с Обекти?

Можем да сортираме списък с Обекти, като използваме Arrays.sort () или Collections.sort ()

41. Защо Collection не разширява интерфейсите Cloneable и Serializable?

Интерфейсът на колекцията съдържа елементи, които не са нищо друго освен група обекти. Редът на елементите се основава на изпълнението на интерфейса Collection. Следователно не е необходимо да се разширява интерфейсът Cloneable и Serializable.

42. Как да обърна списък?

Можем да използваме метода reverse (), за да обърнем елементите в списъка.

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;

public class ArrayListReverse {

  public static void main(String[] args) {
    ArrayList<Integer> al = new ArrayList<Integer>();
    al.add(30);
    al.add(10);
    al.add(50);
    al.add(40);
    al.add(20);
    
    System.out.println("Elements in the ArrayList");
    System.out.println(al);
    
    System.out.println("

Сортиране на елементи

 in descending order:");
    Collections.reverse(al);
    System.out.println(al);

  }

}
Elements in the ArrayList
[30, 10, 50, 40, 20]
Sort Elements in descending order:
[20, 40, 50, 10, 30]

43. Колко типа LinkedList поддържа Java?

LinkedList в Java поддържа два типа: Single LinkedList, Doubly LinkedList

44. Какво е набор и какви са различните изпълнения?

Set е неподредена колекция от елементи, което означава, че не поддържа никакъв ред за вмъкване и не може да съхранява дублирани стойности.

HashSet, LinkedHashSet и TreeSet са класовете, които реализират интерфейса Set.

45. Какво е emptySet ()?

A emptySet () връща празен неизменяем набор, когато се опитваме да премахнем нулеви елементи. Този набор е сериализуем.

46. ​​Какво е вектор?

Векторът е подобен на масива, но е част от наследената рамка и има отделни методи, освен рамката на колекции.

47. Какво е клас по речник?

Речник клас, който може да съхранява двойки ключ-стойност.

48. Какво е UnsupportedOperationException?

UnsupportedOperationException се изхвърля, когато методът не се поддържа от типа Collection.

49. Какво представлява методът peek () в Queue?

Методът peek () връща елемента head, но не го премахва. Ако опашката е празна, тя връща null.

50. Какви са най-добрите практики в рамката за събиране?

  • Изберете правилния тип колекция въз основа на изискването
  • Избягвайте повторно променяне или преоразмеряване
  • Използвайте повече интерфейси
  • Използвайте генерични продукти за безопасност на типа
  • Подобрете повторната употреба на кода, като използвате класа на помощната програма Collection
  • Използвайте неизменни класове

51. Какви са различните видове опашка?

  • PriorityQueue
  • Опашка с двоен край (deque)
  • Кръгова опашка

52. Какви са разликите между стека и опашката?

СтекОпашка
Следва концепцията LIFOСледва концепцията на FIFO
Извършва операция за вмъкване или изтриване през единия крайИзвършва вмъкване през единия край и изтриване през другия край
Използва един указателИзползва двойни указатели
Няма варианти на вариантиИма варианти като PriorityQueue, CircularQueue, Double-end Queue

53. Какви са разликите между масива и стека?

ArrayСтек
Съхранява елементи от същия тип данниСъхранява елементи от различни типове данни
Можем да използваме операция с произволен достъп за премахване или добавяне на елементиМожем да използваме концепцията LIFO за добавяне или премахване на елементи
Идентифицира елементите въз основа на индексаИзползва се за натискане и поп операции

54. Какви са предимствата на стека?

  • Използва LIFO концепция за управление на данните
  • Автоматично почиства обекта
  • Разпределението и освобождаването на паметта е по-лесно
  • Използва стека, когато променливата не се използва извън функцията
  • Не се поврежда лесно

55. Какво е Big-O нотация?

Нотацията Big-O е да се изчисли ефективността на алгоритъма въз основа на броя на елементите. Можем да използваме това, за да сравним и проверим кой тип колекция е адаптивен за изпълнение.

Например методът getIndex (индекс i) на ArrayList изпълнява a постоянно време и не зависи от броя на елементите. Следователно обозначението Big-O е O (1).

56. Какво е LinkedList?

LinkedList е клас, който изпълнява както deque, така и List, използвайки двойно свързания списък. Всеки елемент е възел, който има 2 части, едната съхранява стойността, а другата съхранява адресната референция на предишния и следващия възел.

57. Какво е Map.entry в Map?

Map.entry е интерфейс, който поддържа работа с въвеждане на карта. Той връща изглед на колекцията. Можем да използваме метода entrySet (), за да извлечем зададения изглед на картата, който има двойки ключ-стойност. Той също има отделни методи като getKey () за извличане на ключа и getValue () за извличане на стойността.

58. Какви са различните методи за премахване на елементи от ArrayList?

  • clear (): Премахва всички елементи и изпразва ArrayList
  • remove (int index): Премахва елемента при посочения индекс
  • remove (Object o): Премахва посочения елемент
  • removeAll (): Премахва всички елементи в списъка
  • removeIf (филтър за предикати): Премахва елементите, които удовлетворяват предиката

59. Как да се присъедините към множество ArrayList?

Можем да се присъединим или обединим елементите на различен ArrayList, използвайки метода addAll (Collection c).

ArrayList<String> al = new ArrayList<String>();
ArrayList<String> arr = new ArrayList<String>();
al.addAll(arr);

60. Какво е диамантен оператор?

Диамантеният оператор поддържа извличане на типовете аргументи от родовия клас. Представен е като <> и може да замени параметризирания конструктор с празни набори от параметри.

Translate »