Ось питання інтерв’ю для колекцій Java для більш свіжих, а також досвідчених кандидатів, щоб отримати роботу, про яку вони мріють.
1) Що таке фреймворк у Java?
Фреймворк - це популярна та готова архітектура, що містить набір класів та інтерфейсів.
2) Що таке фреймворк Collection у Java?
Collection Framework - це група класів та інтерфейсів, яка використовується для зберігання та управління об’єктами. Він пропонує різні класи, такі як Vector, ArrayList, HashSet, Stack тощо. Структура Java Collection також може використовуватися для таких інтерфейсів, як Queue, Set, List тощо.
3) Поясніть клас колекцій
java.util.Collections - це клас, що складається зі статичних методів, що діють на колекції. Він містить поліморфні алгоритми роботи з колекціями, "обгортками". Цей клас містить методи для алгоритмів, таких як двійкове сортування, пошук, перетасовка тощо.
4) Що таке hashCode ()?
HashCode () - це метод, який повертає цілочисельний хеш-код.
5) Розрізняти ArrayList та Vector у рамках колекції Java.
ArrayList | Вектор |
ArrayList не можна синхронізувати. | Вектор може бути синхронізованим. |
Це не застарілий клас. | Це застарілий клас. |
Він може збільшити свій розмір на 50% від розміру масиву. | Він може збільшити свій розмір, збільшивши розмір масиву вдвічі. |
ArrayList не є потокобезпечним. | Вектор є потокобезпечним. |
6) Що таке ArrayList у Java?
ArrayList - це структура даних, яка може бути розтягнута для розміщення додаткових елементів всередині себе та зменшення до меншого розміру при видаленні елементів. Це дуже важлива структура даних, корисна для обробки динамічної поведінки елементів.
7) Розмежувати між Iterator та ListIterator
Різниця між Iterator та ListIterator полягає в:
Ітератор | ListIterator |
Ітератор може обходити елементи масиву в прямому напрямку. | ListIterator може обходити елементи масиву як у зворотному, так і в прямому напрямку. |
Його можна використовувати в черзі, списку та наборі. | Його можна використовувати в списку. |
Він може виконувати лише операцію видалення. | Він може виконувати операцію додавання, видалення та встановлення під час обходу колекції. |
8) У чому різниця між Ітератором та Переліченням?
Різниця між ітератором та переліченням
Ітератор | Перерахування |
Ітератор може переходити як до застарілих, так і до неспадкових елементів. | Перерахування може обходити лише застарілі елементи. |
Ітератор працює швидко. | Перерахування не є швидким. |
Ітератор дуже повільний у порівнянні з переліченням. | Перерахування швидко порівняти з Iterator. |
Ітератор може виконувати операцію видалення під час обходу колекції. | Перерахування може виконувати лише траверсну операцію над колекцією. |
9) Визначте BlockingQueue
BlockingQueue - це інтерфейс, що використовується в Java, який може розширити чергу. Він забезпечує паралельність у різних операціях черги, таких як пошук, вставка, видалення тощо.
Черга чекає, щоб не стала порожньою під час отримання будь-яких елементів. BlockingQueue не повинен містити нульових елементів. Реалізація цієї черги захищена від потоків.
Синтаксис BlockingQueue такий:
public interface BlockingQueueextends Queue
10) Поясніть метод заміщення дорівнює ()
Метод equals використовується для перевірки подібності між двома об’єктами. Якщо програміст хоче перевірити об'єкт на основі властивості, його потрібно замінити.
11) У чому різниця між порівняльним та компаратором?
Різниця між Comparable та Comparator полягає в:
Порівняно | Компаратор |
Comparable забезпечує метод compareTo () для сортування елементів у Java. | Компаратор надає метод compare () для сортування елементів у Java. |
Порівняний інтерфейс присутній у пакунку java.lang. | Інтерфейс порівняння присутній у Java. пакет util. |
Логіка сортування має бути в тому ж класі, об’єкт якого ви збираєтеся сортувати. | Логіка сортування повинна знаходитися в окремому класі, щоб писати різне сортування на основі різних атрибутів об’єктів. |
Клас, об’єкти якого потрібно сортувати, повинен реалізовувати порівнянний інтерфейс. | Класу, об’єкти якого потрібно сортувати, не потрібно реалізовувати інтерфейс порівняння. |
Він забезпечує одиночні послідовності сортування. | Він забезпечує безліч послідовностей сортування. |
Цей метод дозволяє сортувати дані відповідно до природного порядку сортування. | Цей метод сортує дані відповідно до налаштованого порядку сортування. |
Це впливає на початковий клас. тобто фактичний клас змінено. | Це не впливає на початковий клас, тобто фактичний клас не змінюється. |
Часто впроваджується в API за допомогою календаря, класів Wrapper, дати та рядка. | Він реалізований для сортування екземплярів сторонніх класів. |
Усі класи обгортки та клас String реалізують подібний інтерфейс. | Єдиними реалізованими класами Comparator є Collator та RuleBasedColator. |
12) Поясніть на прикладі дорівнює ()
Equals () перевіряє, чи дорівнює об'єкт числа об'єкту, який передається як аргумент чи ні.
Синтаксис методу equals () такий:
public boolean equals(Object o)
Цей метод приймає два параметри 1) будь-який об'єкт, 2) повернене значення. Він повертає true, якщо переданий аргумент не має значення null і є об'єктом подібного типу, що має однакове числове значення.
Приклад:
import java.lang.Integer;public class Test {public static void main(String args[]) {Integer p = 5;Integer q = 20;Integer r =5;Short s = 5;System.out.println(p.equals(q));System.out.println(p.equals(r));System.out.println(p.equals(s));}}
13) Перелічіть переваги загального збору
Переваги використання загальної колекції:
- Якщо програмісти використовують загальний клас, вони не потребують розпізнавання типів.
- Він безпечний для типу та може бути перевірений під час складання.
- Він забезпечує стабільність коду, виявляючи помилку під час компіляції.
14) Поясніть метод перетворення ArrayList в Array та Array в ArrayList
Програмісти можуть перетворити масив на ArrayList, використовуючи метод asList () класу Arrays. Це статичний метод класу Arrays, який приймає об'єкт List. Синтаксис методу asList () такий:
Arrays.asList(item)
Програмісти Java можуть перетворити ArrayList в об'єкт List, використовуючи синтаксис:
List_object.toArray(new String[List_object.size()])
15) Наведіть приклад ArrayList
Прикладом зворотного ArrayList є:
import java.util.ArrayList;class Test_ArrayList {public static void main(String[] args) {//Creating a generic ArrayListArrayListarlTest = new ArrayList ();//Size of arrayListSystem.out.println("Size of ArrayList at creation: " + arlTest.size());//Lets add some elements to itarlTest.add("D");arlTest.add("U");arlTest.add("K");arlTest.add("E");//Recheck the size after adding elementsSystem.out.println("Size of ArrayList after adding elements: " + arlTest.size());//Display all contents of ArrayListSystem.out.println("List of all elements: " + arlTest);//Remove some elements from the listarlTest.remove("D");System.out.println("See contents after removing one element: " + arlTest);//Remove element by indexarlTest.remove(2);System.out.println("See contents after removing element by index: " + arlTest);//Check size after removing elementsSystem.out.println("Size of arrayList after removing elements: " + arlTest.size());System.out.println("List of all elements after removing elements: " + arlTest);//Check if the list contains "K"System.out.println(arlTest.contains("K"));}}
16) Наведіть приклад сортування масиву у порядку зростання
Прикладом сортування масиву в порядку зменшення є:
package com.guru99;public class SelectionSortAlgo {public static void main(String a[]){int[] myArray = {860,8,200,9};System.out.println("------Before Sort-----");printArray(myArray);selection(myArray);//sorting array using selection sortSystem.out.println("-----After Sort-----");printArray(myArray);}public static void selection(int[] array){for (int i = 0; i < array.length - 1; i++){ System.out.println("Sort Pass Number "+(i+1));int index = i;for (int j = i + 1; j < array.length; j++){System.out.println("Comparing "+ array[index] + " and " + array[j]);if (array[j] < array[index]){System.out.println(array[index] + " is greater than " + array[j] );index = j;}}int smallerNumber = array[index];array[index] = array[i];array[i] = smallerNumber;System.out.println("Swapping Elements: New Array After Swap");printArray(array);}}static void printArray(int[] array){for(int i=0; i < array.length; i++){System.out.print(array[i] + " ");}System.out.println();}}
17) Поясніть основні інтерфейси фреймворку колекцій Java
Фреймворк колекції Java - це корінь ієрархії колекцій. Він представляє групу об’єктів як її елементи. Мова програмування Java не забезпечує прямої реалізації такого інтерфейсу.
- Set: Set - це колекція, що не має повторюваних елементів. Він використовує хеш-таблицю для зберігання елементів.
- Список: Список - це впорядкована колекція, яка може містити повторювані елементи. Це дозволяє розробникам отримувати доступ до будь-яких елементів із папки "Вхідні". Список схожий на масив, що має динамічну довжину.
- КАРТА: Це об’єкт, який відображає ключі до значень. Він не може містити повторюваних ключів. Кожен ключ може бути зіставлений принаймні з одним значенням.
18) Які особливості Java Hashmap?
Особливості Java Hashmap:
- Ці значення можна зберігати на карті шляхом формування пари ключ-значення. Значення можна отримати за допомогою ключа, передавши його правильному методу.
- Якщо на Карті не існує жодного елемента, він видасть 'NoSuchElementException'.
- HashMap зберігає лише посилання на об'єкти. Ось чому неможливо використовувати примітивні типи даних, такі як double або int. Замість цього використовуйте клас обгортки (наприклад, Integer або Double).
19) Що таке стек?
Стек - це спеціальна область пам’яті комп’ютера, яка зберігає тимчасові змінні, створені функцією. У стеку змінні оголошуються, зберігаються та ініціалізуються під час виконання.
20) Що таке зв’язаний список?
Зв’язаний список - це структура даних, яка може зберігати колекцію елементів. Іншими словами, зв’язані списки можна використовувати для зберігання кількох об’єктів одного типу. Кожна одиниця або елемент списку називається вузлом. Вузол у списку пов'язаних має свої дані та адресу наступного вузла. Це як ланцюжок. Пов’язані списки використовуються для створення графіків та дерев.
21) Наведіть приклад ArrayList
Прикладом ArrayList є:
import java.util.ArrayList;class Test_ArrayList {public static void main(String[] args) {//Creating a generic ArrayListArrayListarlTest = new ArrayList ();//Size of arrayListSystem.out.println("Size of ArrayList at creation: " + arlTest.size());//Lets add some elements to itarlTest.add("D");arlTest.add("U");arlTest.add("K");arlTest.add("E");//Recheck the size after adding elementsSystem.out.println("Size of ArrayList after adding elements: " + arlTest.size());//Display all contents of ArrayListSystem.out.println("List of all elements: " + arlTest);//Remove some elements from the listarlTest.remove("D");System.out.println("See contents after removing one element: " + arlTest);//Remove element by indexarlTest.remove(2);System.out.println("See contents after removing element by index: " + arlTest);//Check size after removing elementsSystem.out.println("Size of arrayList after removing elements: " + arlTest.size());System.out.println("List of all elements after removing elements: " + arlTest);//Check if the list contains "K"System.out.println(arlTest.contains("K"));}}
22) Поясніть зв’язаний список, що підтримується Java
Два типи пов'язаних списків, які підтримує Java:
- Єдинозв’язаний список: Єдинозв’язаний список - це тип структури даних. У єдинозв’язаному списку кожен вузол у списку зберігає вміст вузла та посилання або вказівник на наступний вузол у списку. Він не зберігає жодного посилання або вказівника на попередній вузол.
- Подвійно зв’язані списки: Подвійно пов’язані списки - це особливий тип пов’язаних списків, де обхід елементів даних може здійснюватися в обох напрямках. Це стає можливим завдяки наявності двох посилань у кожному вузлі, одне - до наступного, а інше - до попереднього.
23) Поясніть методи, передбачені інтерфейсом черги?
Методи інтерфейсу Java Queue:
Метод | Опис |
логічне додавання (об'єкт) | Вставляє вказаний елемент у Чергу. Це повертає істину у випадку успіху. |
логічна пропозиція (об'єкт) | Цей метод використовується для вставки елемента в Чергу. |
Видалення об’єкта () | Він отримує та видаляє головку черги. |
Опитування об'єкта () | (): Він отримує та видаляє заголовок черги або повертає нуль у випадку, якщо вона порожня. |
Опитування об'єкта () | Він отримує та видаляє заголовок черги або повертає null, якщо він порожній. |
Елемент об'єкта () | Отримує дані з Черги, але не видаляє їх голову. |
Заглянути об'єкт () | Отримує дані з Черги, але не видаляє їх заголовок, або у випадку, якщо Черга є Чергою порожня, вона отримає нуль. |
24) Згадайте методи, передбачені класом Stack
Важливими методами класу Stack є:
- push (): Всуньте елемент у стек.
- empty (): Цей метод виявляє, чи є стек порожнім чи ні.
- pop (): Цей метод фреймворку колекції Java видаляє об’єкт зі стеку.
- search (): Цей метод здійснює пошук елементів у стеку.
- peek (): Цей метод Java розглядає об'єкт стека, не видаляючи його.
25) Визначте emptySet () у рамках колекцій Java
Метод emptySet (), який повертає порожній незмінний набір щоразу, коли програмісти намагаються видалити нульові елементи. Набір, який повертає emptySet (), можна серіалізувати. Синтаксис цього методу:
public static final
26) Диференціювати колекцію та колекції
Різниця між колекцією та колекціями полягає в:
Колекція | Колекції |
Колекція - це інтерфейс. | Колекції - це клас. |
Він представляє групу об'єктів як єдине ціле. | Він визначає різні методи корисності для об'єктів колекції. |
Колекція є кореневим інтерфейсом фреймворку Java Collection. | Колекції - це загальний клас корисності. |
Цей інтерфейс використовується для виведення структур даних колекції. | Цей клас містить статичні методи маніпулювання структурою даних. |
27) Визначити LinkedHashSet в рамках Java Collection?
LinkedHashSet - це підклас класу під назвою HashSet і реалізує заданий інтерфейс. Це добре впорядкована версія HashSet, яка підтримує подвійно зв’язаний список у всіх його елементах.
28) Яка різниця між безвідмовною та безпечною?
Невдало | Безаварійності |
Це не дозволяє модифікацію колекції під час ітерації. | Це дозволяє модифікувати колекцію під час ітерації. |
Це може викинути ConcurrentModificationException | Тут не може бути жодного винятку. |
Він використовує оригінальну колекцію для обходу елементів. | Для обходу елементів використовується оригінальна копія колекції. |
Не потрібно додаткової пам'яті. | Існує потреба в додатковій пам’яті. |
29) Перелічіть види колекції інтерфейсу карти
Перегляди колекції інтерфейсу карти: 1) подання набору ключів, 2) перегляд набору значень та 3) подання набору записів.
30) Які переваги колекції Framework у Java?
Переваги Collection Framework в Java:
- Структура збору Java пропонує високоефективні та ефективні структури даних, що підвищують точність і швидкість програми.
- Програма, розроблена на основі колекції Java, проста в обслуговуванні.
- Розробник може змішувати класи з іншими типами, що призводить до збільшення повторного використання коду.
- Структура колекції Java дозволяє програмістам змінювати примітивні типи колекцій, як їм подобається.
31) Який хороший спосіб сортувати об'єкти Collection у Java?
Хорошим способом сортування об’єктів колекції Java є використання інтерфейсів Comparable та Comparator. Розробник може використовувати Collections.sort (), елементи сортуються на основі згаданого порядку у порівнянніTo ().
Коли розробник використовує Collections, sort (Comparator), він сортує об'єкти, що залежать від порівняння () інтерфейсу Comparator.
32) Поясніть вектор на Java
Вектор такий самий, як і масив. Він має компоненти, до яких можна отримати доступ за допомогою значення індексу. Вектори можуть містити застарілий метод, який не є складовою колекції.
33) У чому різниця між набором та картою?
Встановити | Карта |
Набір належить пакунку-java.util. | Карта належить package- java.util. |
Він може розширити інтерфейс колекції. | Він не розширює інтерфейс збору. |
Він не допускає повторення значень. | Це дозволяє дублювати значення. |
Набір може сортувати лише одне нульове значення. | Карта може сортувати кілька нульових значень. |
34) Визначте клас словника
Клас Dictionary - це клас Java, який має можливість зберігати пари ключ-значення.
35) Визначте EnumSet
java.util.EnumSet - це встановити реалізацію, яку можна використовувати з типами перерахування. EnumSet, що має всі елементи, повинен походити з одного типу переліку, вказаного явно або неявно. Він не синхронізований, а також нульові клавіші заборонені. EnumSet забезпечує такі методи, як EnumSetof (E спочатку E
… Відпочинок), complementOf (EnumSet s) та copyOf (Collection c).36) Які два способи видалити дублікати з ArrayList?
Два способи видалення дублікатів із ArrayList:
- HashSet: Розробник може використовувати HashSet, щоб видалити повторюваний елемент із ArrayList. Недоліком є те, що він не може зберегти порядок вставки.
- LinkedHashSet: Розробники можуть також підтримувати порядок вставки за допомогою LinkedHashSet замість HashSet.
37) Що таке IdentityHashMap?
IdentityHashMap - це клас, який реалізує серіалізовані, клоновані інтерфейси, Map та розширює клас AbstractMap. Він призначений для випадку, коли існує потреба в семантиці рівномірності посилань.
38) Що таке WeakHashMap?
WeakHashMap - це реалізація Java Map. Він використовується для зберігання слабких посилань на його ключі. Сортування за допомогою цієї карти дозволяє пару ключ-значення збирати як сміття. Його ключ не є посиланням за межами WeakHashMap.
39) Які методи зробити колекцію безпечною для потоків?
Методи, що дозволяють зробити нитку колекції безпечною:
- Collections.synchronizedList (список);
- Collections.synchronizedMap (карта);
- Collections.synchronizedSet (set);
40) Поясніть UnsupportedOperationException
UnsupportedOperationException - це виняток, який створюється методами, які не підтримуються фактичним типом колекції.
Наприклад, розробник створює список лише для читання, використовуючи "Collections.unmodifiableList (list)" та викликаючи метод call (), add () або remove (). Він повинен чітко викидати UnsupportedOperationException.
41) Назвіть класи колекції, що надають випадковий доступ елементам до її елементів
Класи колекцій, що надають випадковий доступ елемента до його елементів, це: 1) ArrayList, 2) HashMap, 3) TreeMap і 4) Hashtable.
42) Поясніть різницю між Чергою та Деке.
Черга | Деке |
Це називається Одностороння черга | Це називається подвійною чергою |
Елементи в черзі додаються або видаляються з одного кінця | Елементи в черзі, додані з обох кінців, можуть бути додані та видалені з обох кінців |
Він менш універсальний. | Він більш універсальний. |
43) Згадайте реалізацію інтерфейсу List та Set
Клас, що реалізує інтерфейс списку: 1) ArrayList, 2) Vector та 3) LinkedList.
Клас, що реалізує набір інтерфейсів: 1) HashSet та 2) TreeSet.
44) Поясніть шаблон дизайну, за яким слідує Iterator
Ітератор дотримується деталей шаблону дизайну ітератора. Він надає розробнику можливість переміщатися по колекціях об'єктів, використовуючи загальний інтерфейс, не знаючи про його реалізацію.
45) Що таке peek () інтерфейсу Черги?
Peek () - це метод інтерфейсу черги. Він отримує всі елементи, але не видаляє голову черги. У випадку, якщо Черга порожня, тоді цей метод поверне нуль.
46) Що таке CopyOnWriteArrayList?
CopyOnWriteArrayList - це варіант ArrayList, в якому такі операції, як додавання та встановлення, реалізуються шляхом створення копії масиву. Це потокобезпечно, і, отже, не викидає ConcurrentModificationException. Цей ArrayLists дозволяє всі елементи, включаючи null.
47) Розрізняти ArrayList та LinkedList
Різниця між ArrayList та LinkedList полягає в:
ArrayList | LinkedList |
Він використовує динамічний масив. | Він використовує подвійно пов'язаний список. |
ArrayList не є кращим для маніпуляцій. | LinkedList є кращим для маніпуляцій. |
ArrayList забезпечує довільний доступ. | LinkedList не забезпечує випадковий доступ. |
ArrayList зберігає лише об'єкти, отже, потрібно менше затрат пам'яті | LinkedList зберігає об'єкт, а також об'єкт адреси; отже, це вимагає більших витрат на пам’ять. |
48) Поясніть методи інтерфейсу ітератора
Методами інтерфейсу ітератора є:
Метод | Опис |
public логічний hasNext () | Він повертає true в ітераторі має елементи; інакше повертає false. |
public Object next () | Цей метод повертає елемент і переміщує покажчик на наступне значення. |
public void remove () | Цей метод Java може видалити останні елементи, повернуті ітератором. Public void remove () використовується менше. |
49) Які методи класу HashSet?
Методами класу HashSet є:
Методи | Опис |
логічне додавання (Об'єкт o) | Цей метод додає елемент згадування до цього набору, якщо він ще не присутній. |
boolean містить (Об'єкт o): | Повертає true, якщо набір містить зазначений елемент. |
void clear (): | Цей метод видаляє набір елементів. |
boolean isEmpty (): | Він повертає істину у випадку, якщо набір не має елементів. |
логічне видалення (Об'єкт o): | Він видаляє вказаний елемент із набору. |
Клон об'єкта (): | Цей метод повертає копію екземпляра HashSet: самі елементи не клоновані. |
ітератор ітератор () | Він повертає ітератор над елементами цього набору. |
розмір int (): | Він повертає кількість елементів, доступних у наборі. |
50) Які методи класу Java TreeSet?
Методами класу Java TreeSet є:
Методи | Описи |
boolean addAll (Колекція c) | Додайте до цього набору всі елементи вказаної колекції. |
boolean містить (Об'єкт o) | Повертає true, якщо набір містить елемент згадування. |
логічний isEmpty () | Цей метод Java повертає true, якщо цей набір не містить елементів. |
логічне видалення (Об'єкт o) | Видаліть вказаний елемент із набору. |
void add (Object o) | Він додає вказаний елемент до набору. |
void clear () | Цей метод Java видаляє всі елементи з набору. |
51) Поясніть пов'язаний HashSet
Клас Java LinkedHashSet - це реалізація пов’язаного списку та таблиці хеш-інтерфейсу Set. Він містить унікальні елементи, подібні до HashSet. Linked HashSet у Java також надає додаткові операції набору, які можуть підтримувати порядок вставки.
52) Які важливі методи використовуються у зв’язаному списку?
Важливими методами, які використовуються у зв'язаному списку, є:
Метод | Опис |
логічне додавання (Об'єкт o) | Він використовується для додавання зазначеного елемента до кінця вектора. |
boolean містить (Об'єкт o) | Це метод, який повертає true, якщо цей список містить зазначений елемент. |
void add (індекс int, елемент Object) | Вставляє елемент у вказаний елемент у вектор. |
void addFirst (Об'єкт o) | Він використовується для вставки заданого елемента на початку. |
void addLast (Об'єкт o) | Він використовується для додавання даного елемента до кінця. |
Внутрішній розмір () | Цей метод можна використовувати для повернення загальної кількості елементів у списку. |
логічне видалення (Об'єкт o) | Він може видалити перше входження зазначеного елемента з цього списку. |
int indexOf (елемент об'єкта) | Цей метод Java повертає індекс із першим входженням елемента згадування у цьому списку або -1. |
int lastIndexOf (елемент об'єкта) | Це метод Java, який повертає індекс з останнім входженням зазначеного елемента в цьому списку або -1. |
53) Перелічіть різні класи, доступні в наборах
У наборах доступні різні класи: HashSet, TreeSetand та LinkedHashSet.
54) Список методів, доступних в інтерфейсі Java Queue
- логічне додавання (об'єкт)
- логічна пропозиція (об'єкт)
- об'єкт видалити ()
- опитування об'єкта ()
- елемент об'єкта ()
- об'єкт заглянути ()
55) Розрізнити список та набір.
Список | Встановити |
Впорядкована колекція елементів | Невпорядкована колекція елементів |
Зберігає порядок вставки | Не зберігає порядок вставки |
Допускаються повторювані значення | Повторювані значення заборонені |
Можна зберігати будь-яку кількість нульових значень | Можна зберегти лише одне нульове значення |
ListIterator можна використовувати для обходу списку в будь-якому напрямку | ListIterator не можна використовувати для обходу набору |
Містить застарілий клас під назвою вектор | Не містить жодного застарілого класу |
56) Поясніть для кожного циклу приклад
For-Each Loop - це ще одна форма циклу for, що використовується для обходу масиву. Це значно зменшує код, і індекс, а точніше лічильник у циклі не використовується.
Приклад для кожного циклу:
class UsingForEach {public static void main(String[] args) {String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};//The conventional approach of using the for loopSystem.out.println("Using conventional For Loop:");for(int i=0; i< arrData.length; i++){System.out.println(arrData[i]);}System.out.println("\nUsing Foreach loop:");//The optimized method of using the for loop - also called the foreach loopfor (String strTemp : arrData){System.out.println(strTemp);}}}
57) Поясніть алмазного оператора
Алмазний оператор дозволяє компілятору збирати аргументи типу загального класу. У Java SE розробник може замінити параметризований конструктор порожніми наборами параметрів (<>), відомими як алмазний оператор.
58) Поясніть інтерфейс випадкового доступу
Інтерфейс RandomAccess використовується реалізаціями List для вказівки на швидку підтримку.
59) Назвіть класи колекції, що реалізують інтерфейс довільного доступу
Пакет Java.util має класи, які можуть реалізувати інтерфейс довільного доступу: CopyOnWriteArrayList, Stack, ArrayList та Vector.
60) Як приєднатися до декількох списків масивів?
У списку наведено метод addall (), множинний ArrayList у Java.
Наприклад, розглянемо два списки 1) areaList і 2) secondAreaList. Розробник може приєднатися до них за допомогою addall (), наприклад:
areaList.addAll (secondAreaList);
61) Поясніть інтерфейс deque
Java.util.Deque - це Java, інтерфейс, який розширює інтерфейс черги. Це забезпечує підтримку вставки та видалення елементів на обох кінцях. Цю чергу також називають подвійною чергою.
62) Поясніть Linkedhashmap
LinkedHashMap - це реалізація інтерфейсу Map. Він також може розширити клас HashMap. Тому, як і HashMap, LinkedHashMap дозволяє розробникам Java дозволити один нульовий ключ і більше одного нульового значення.
63) Поясніть методи видалення елементів із ArrayList
Методи видалення елементів із ArrayList:
Метод | Опис |
ясно () | Цей метод видаляє елементи з ArrayList. |
видалити (індекс int) | Цей метод ArrayList може видалити елемент у певній позиції. |
видалити (Об'єкт o) | Він може видалити перше входження елемента згадування з ArrayList. |
видалити все() | Він може видалити список елементів, що знаходяться в певній колекції. |
removeIf (фільтр предикатів super E>) | Цей метод видаляє елементи, які задовольняють згадуванню предиката. |
64) Поясніть карту. запис у карті
Map.entry - це Java-інтерфейс java.util. Він має вкладений інтерфейс у Map. Цей інтерфейс повинен бути кваліфікований за назвою класу або інтерфейсу, учасником якого він є. Тому він кваліфікується як Карта. Вхід. Він представляє пару ключ-значення, яка може утворювати елемент Карти.
Цей метод повертає подання колекції. Наприклад, розглянемо cityMap як карту. Розробник може використовувати entrySet (), щоб отримати заданий вигляд карти, що має елемент Map.Entry. Програміст також може використовувати getKey () і getValue () Map.Entry, щоб отримати пару ключа і значення карти.
65) Який метод використовується для сортування масиву за зростанням?
Метод фреймворку колекції Java, Collections.sort (), використовується для сортування масиву за зростанням.
66) Як виміряти продуктивність ArrayList?
Ефективність ArrayList можна виміряти за допомогою:
- Додавання елемента: Розробник може додати елемент в кінці ArrayList, використовуючи метод add (E e). Це O (1). У гіршому сценарії це може перейти до O (n). Це може статися, якщо розробник додає більше елементів, ніж ємність масиву.
- Отримання елемента : - Розробник може отримати доступ до індексу масиву за допомогою get (int index). У цьому випадку продуктивність можна виміряти за допомогою ArrayList get () - O (1).
- Видалення елемента: Якщо розробники видаляють елемент за допомогою видалення (індекс int), то продуктивність ArrayList може бути розрахована за допомогою згаданої операції видалення (індекс індексу) - це метод O (n - індекс).
67) Поясніть клас LinkedList
Клас LinkedList в Java реалізує Deque і List, використовуючи подвійно пов'язаний список. У подвійно пов’язаному списку є вузол приватного класу, який забезпечує його структуру. Він також має змінну елемента для зберігання значення та посилання на клас Node. Це може бути використано для підключення наступного та попереднього вузлів.
68) Наведіть приклад Hashmap
Прикладом Hashmap є:
import java.util.HashMap;import java.util.Map;public class Sample_TestMaps{public static void main(String[] args){MapobjMap = new HashMap ();objMap.put("Name", "Suzuki");objMap.put("Power", "220");objMap.put("Type", "2-wheeler");objMap.put("Price", "85000");System.out.println("Elements of the Map:");System.out.println(objMap);}}
69) Як повторити карту?
Розробник не може безпосередньо повторювати карту, але цей інтерфейс має два методи, що надають набір карти. Ці методи:
- Set
> entrySet (): Це метод, який повертає набір, що містить записи, згадані на карті. Ці записи, як правило, заперечують, що має тип Map. Вхід. - Set
keySet (): Цей метод Java повертає набір, що має ключ карти.
70) Поясніть Treemap на Java
TreeMap - це клас, який реалізує інтерфейс Maped LinkedHashMap та HashMap. Він також може реалізувати інтерфейс NavigableMap і може розширити клас AbstractMap.
71) У чому різниця між Hashmap та Hashtable?
Хеш-карта | Hashtable |
Він не синхронізований. | Він синхронізований. |
HashMap дозволяє використовувати один ключ як нульове значення. | HashTable не допускає нульових значень. |
Ітератор використовується для обходу HashMap. | Для обходу хеш-таблиці використовується або Iterator, або Enumerator. |
Він може бути використаний як для HashTable, так і для HashMap, а також швидко працює. | Він може використовуватися з HashTable і є надійним. |
HashMap працює швидше, ніж HashTable. | Hashtable не набагато швидший у порівнянні з HashMap. |
72) Поясніть внутрішню роботу HashSet у Java
HashSet у Java внутрішньо використовує HashMap для зберігання елементів. Він також може зберігати унікальні значення без повторюваних значень.
У Java розробник HashSet може мати метод add (E e), який у якості параметра бере лише елемент, який потрібно додати. Він не приймає пару ключ-значення.
73) Поясніть нотацію Big-O на прикладі
Позначення Big-O зображує ефективність алгоритму як кількість елементів у ArrayList. Розробник може використовувати позначення Big-O для вибору реалізації колекції. Він базується на продуктивності, часі та пам’яті.
Наприклад, ArrayList get (індекс i) - це метод виконання операції з постійним часом. Це не залежить від загальної кількості елементів, доступних у списку. Отже, продуктивність у позначенні Big-O є O (1).
74) Поясніть найкращі практики роботи з Java Collection Framework
Найкращі практики в Java Collection Framework:
- Вибір правильного типу колекції залежить від потреби.
- Уникайте переобробки або зміни розміру, підрахувавши загальну кількість елементів, що зберігаються в класах колекції.
- Написати програму Java з точки зору інтерфейсів. Це допоможе розробникові без особливих зусиль змінити його реалізацію в майбутньому.
- Розробник може використовувати Generics для безпеки типу.
- Використовуйте незмінні класи, надані Java Development Kit. Уникайте реалізації equals () та hashCode () для користувацьких класів.
- Програміст повинен використовувати утилітний клас Collections для алгоритмів або для отримання лише для читання, синхронізованих або порожніх колекцій. Це покращить повторне використання коду з низькою ремонтопридатністю.
75) Поясніть різні типи черг у Java
У Java є три типи черг:
- Черга пріоритетів: Це особливий тип Черги, де елементи сортуються відповідно до їх природного впорядкування або спеціального порівняння.
- Кругова черга: це тип черги, в якій операції користувача виконуються на основі методу FIFO. Останній елемент підключений до першої позиції для того, щоб зробити коло.
- Двостороння черга: Двостороння черга - це абстрактний тип даних, який узагальнює чергу. Елементи цієї черги можна додавати або видаляти з голови чи хвоста.
76) У чому різниця між стеком та чергою?
Стек | Черга |
Принцип роботи стека - LIFO. | Принципом роботи черги є FIFO. |
Один кінець використовується для вставки або видалення елементів. | Один кінець використовується для вставки, а інший - для видалення елементів. |
Він використовує один покажчик. | Він використовує два вказівники в простій черзі. |
Він не має жодного варіанту. | Він має такі варіанти, як черга пріоритетів, кругова черга, черга з подвійним завершенням. |
Він простий у використанні. | Це непросто у використанні. |
77) У чому різниця між масивом і стеком?
Різниця між масивом і стеком:
Масив | Стек |
Це сукупність елементів, які ідентифікуються за допомогою індексу. | Це операція збору, яка служить операцією push і pop. |
Він має елементи типів даних, які однакові. | Він має різні типи даних. |
Елементи можна видалити або додати в масив за допомогою операції довільного доступу. | Елементи можна видалити або додати в стек за допомогою операції LIFO. |
78) Визначте ітератор ()
Iterator () - це інтерфейс, який надає методи ітерації колекції. Ітератор може замінити Перерахування в Java. Це дозволяє абоненту видаляти елементи з колекції. Метод забезпечує загальний спосіб обходу з використанням елементів колекції та реалізації шаблону дизайну ітератора.
79) Які різні способи перегляду списку?
Програміст Java collection Framework може переглядати список двома способами: 1) Використовуючи ітератор, та 2) використовуючи його для кожного циклу.
80) Які переваги стека?
Перевагами стека є:
- Це допомагає управляти даними методом Last In First Out (LIFO), що неможливо за допомогою пов’язаного списку та масиву.
- Коли функція викликається, локальні змінні зберігаються у стеку, і вона автоматично знищується після повернення.
- Стек використовується, коли змінна не використовується поза цією функцією.
- Це дозволяє контролювати розподіл та вивільнення пам'яті.
- Стек автоматично очищає об'єкт.
- Не легко пошкоджується
- Змінні не можна змінити.