80 Java Колекції Інтерв'ю Запитання та відповіді (2025)
Java Колекції. Запитання та відповіді для інтерв’ю для першокурсників
1) Що таке фреймворк Java?
Фреймворк — це популярна готова архітектура, яка містить набір класів та інтерфейсів.
2) Що таке структура колекції Java?
Framework Collection — це групування класів та інтерфейсів, які використовуються для зберігання та керування об’єктами. Він надає різні класи, такі як Vector, ArrayList, HashSet, Stack тощо. Java Framework колекції також можна використовувати для таких інтерфейсів, як Queue, Set, List тощо.
3) Поясніть клас колекцій
java.util.Collections — це клас, що складається зі статичних методів, які працюють із колекціями. Він містить поліморфні алгоритми для роботи з колекціями, «обгортками». Цей клас містить такі методи для алгоритмів, як двійкове сортування, пошук, перетасування тощо.
4) Що таке hashCode()?
HashCode() — це метод, який повертає цілочисельний хеш-код.
5) Розрізняйте ArrayList і Vector у Java рамка колекції.
ArrayList | вектор |
---|---|
ArrayList не можна синхронізувати. | Вектор можна синхронізувати. |
Це не застарілий клас. | Це застарілий клас. |
Він може збільшити свій розмір на 50% від розміру масиву. | Він може збільшити свій розмір, подвоївши розмір масиву. |
ArrayList не є потокобезпечним. | Vector є потокобезпечним. |
6) Що таке ArrayList Java?
ArrayList це структура даних, яку можна розтягнути, щоб розмістити додаткові елементи всередині себе, і зменшити назад до меншого розміру, коли елементи видаляються. Це дуже важлива структура даних, корисна для обробки динамічної поведінки елементів.
7) Розрізняйте Iterator і ListIterator
Різниця між Iterator і ListIterator така:
Ітератор | ListIterator |
---|---|
Ітератор може проходити елементи масиву в прямому напрямку. | ListIterator може проходити елементи масиву як у зворотному, так і в прямому напрямках. |
Його можна використовувати в черзі, списку та наборі. | Його можна використовувати в List. |
Він може виконувати лише операцію видалення. | Він може виконувати операції додавання, видалення та встановлення під час перегляду колекції. |
8) Яка різниця між ітератором і перерахуванням?
Різниця між ітератором і перерахуванням
Ітератор | Перерахування |
---|---|
Ітератор може проходити як застарілі, так і не застарілі елементи. | Перерахування може проходити лише застарілі елементи. |
Ітератор є безвідмовним. | Перерахування не є безвідмовним. |
Ітератор дуже повільний порівняно з Enumeration. | Перерахування швидке порівняно з ітератором. |
Ітератор може виконувати операцію видалення під час обходу колекції. | Перерахування може виконувати лише операцію обходу колекції. |
9) Визначте BlockingQueue
BlockingQueue — це інтерфейс, який використовується в Java що може розширити чергу. Він забезпечує паралельність різних операцій черги, таких як пошук, вставка, видалення тощо.
Черга очікує, щоб стати непорожньою під час отримання будь-яких елементів. BlockingQueue не має містити нульових елементів. Реалізація цієї черги є потокобезпечною.
Синтаксис BlockingQueue такий:
public interface BlockingQueue<E> extends Queue <E>
10) Поясніть перевизначення метода equals().
Метод equals використовується для перевірки подібності між двома об’єктами. У випадку, якщо програміст хоче перевірити об’єкт на основі властивості, його потрібно перевизначити.
11) Яка різниця між Comparable і Comparator?
Різниця між Comparable і Comparator така:
Порівнюваний | компаратор |
---|---|
Comparable надає метод compareTo() для сортування елементів Java. | Компаратор надає метод compare() для сортування елементів Java. |
Подібний інтерфейс присутній у пакеті java.lang. | Інтерфейс компаратора присутній у java. службовий пакет. |
Логіка сортування повинна бути в тому ж класі, об'єкт якого ви збираєтеся сортувати. | Логіка сортування повинна бути в окремому класі, щоб писати різні сортування на основі різних атрибутів об'єктів. |
Клас, об'єкти якого ви хочете відсортувати, повинен реалізовувати порівняльний інтерфейс. | Класу, об'єкти якого ви хочете відсортувати, не потрібно реалізовувати інтерфейс компаратора. |
Він забезпечує одну послідовність сортування. | Він забезпечує кілька послідовностей сортування. |
Цей метод може сортувати дані відповідно до природного порядку сортування. | Цей метод сортує дані відповідно до налаштованого порядку сортування. |
Це впливає на початковий клас. тобто фактичний клас змінюється. | Це не впливає на вихідний клас, тобто фактичний клас не змінюється. |
Часто реалізується в API календарем, класами оболонки, датою та рядком. | Він реалізований для сортування екземплярів сторонніх класів. |
Усі класи-огортки та клас String реалізують порівняльний інтерфейс. | Єдиними реалізованими класами Comparator є Collator і RuleBasedColator. |
12) Поясніть equals() на прикладі
Equals() перевіряє, чи дорівнює чисельний об’єкт об’єкту, який передається як аргумент, чи ні.
Синтаксис методу equals() такий:
public boolean equals(Object o)
Цей метод приймає два параметри: 1) будь-який об’єкт, 2) значення, що повертається. Він повертає істину, якщо переданий аргумент не є нульовим і є об’єктом подібного типу з таким самим числовим значенням.
приклад:
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 ArrayList ArrayList<String> arlTest = new ArrayList<String>(); //Size of arrayList System.out.println("Size of ArrayList at creation: " + arlTest.size()); //Lets add some elements to it arlTest.add("D"); arlTest.add("U"); arlTest.add("K"); arlTest.add("E"); //Recheck the size after adding elements System.out.println("Size of ArrayList after adding elements: " + arlTest.size()); //Display all contents of ArrayList System.out.println("List of all elements: " + arlTest); //Remove some elements from the list arlTest.remove("D"); System.out.println("See contents after removing one element: " + arlTest); //Remove element by index arlTest.remove(2); System.out.println("See contents after removing element by index: " + arlTest); //Check size after removing elements System.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 sort System.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 структура колекції є коренем ієрархії колекції. Він представляє групу об'єктів як її елементи. The Java Мова програмування не передбачає прямої реалізації такого інтерфейсу.
- Комплект: Набір - це колекція, яка не містить повторюваних елементів. Він використовує хеш-таблицю для зберігання елементів.
- список: Список — це впорядкована колекція, яка може містити повторювані елементи. Це дозволяє розробникам отримувати доступ до будь-яких елементів із папки «Вхідні». Список схожий на масив із динамічною довжиною.
- КАРТА: Це об’єкт, який відображає ключі на значення. Він не може містити повторювані ключі. Кожен ключ може бути зіставлений принаймні з одним значенням.
18) Які особливості Java Hashmap?
Особливості Java Хеш-карта є:
- Значення можна зберігати на карті, сформувавши пару ключ-значення. Значення можна отримати за допомогою ключа, передавши його правильному методу.
- Якщо на карті не існує жодного елемента, виникне "NoSuchElementException".
- HashMap зберігає лише посилання на об’єкти. Ось чому неможливо використовувати примітивні типи даних, такі як double або int. Використовуйте клас оболонки (наприклад, Integer або Double) замість цього.
19) Що таке стек?
Стек — це спеціальна область пам’яті комп’ютера, у якій зберігаються тимчасові змінні, створені функцією. У стеку змінні оголошуються, зберігаються та ініціалізуються під час виконання.
20) Що таке пов’язаний список?
Зв’язаний список — це структура даних, яка може зберігати набір елементів. Іншими словами, зв’язані списки можна використовувати для зберігання кількох об’єктів одного типу. Кожна одиниця або елемент списку називається вузлом. Вузол у списку Linked має свої дані та адресу наступного вузла. Це як ланцюг. Зв’язані списки використовуються для створення графіків і дерев.
Java Колекції Інтерв'ю Запитання та відповіді для досвідчених
21) Наведіть приклад ArrayList
Приклад ArrayList:
import java.util.ArrayList; class Test_ArrayList { public static void main(String[] args) { //Creating a generic ArrayList ArrayList<String> arlTest = new ArrayList<String>(); //Size of arrayList System.out.println("Size of ArrayList at creation: " + arlTest.size()); //Lets add some elements to it arlTest.add("D"); arlTest.add("U"); arlTest.add("K"); arlTest.add("E"); //Recheck the size after adding elements System.out.println("Size of ArrayList after adding elements: " + arlTest.size()); //Display all contents of ArrayList System.out.println("List of all elements: " + arlTest); //Remove some elements from the list arlTest.remove("D"); System.out.println("See contents after removing one element: " + arlTest); //Remove element by index arlTest.remove(2); System.out.println("See contents after removing element by index: " + arlTest); //Check size after removing elements System.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) Поясніть методи, які надає інтерфейс Queue?
Методи Java Інтерфейс черги:
Метод | Опис |
---|---|
логічне додавання (об'єкт) | Вставляє вказаний елемент у чергу. Він повертає true у разі успіху. |
логічна пропозиція (об'єкт) | Цей метод використовується для вставки елемента в чергу. |
Об'єкт видалити() | Він отримує та видаляє голову черги. |
Опитування об'єктів() | (): Він отримує та видаляє заголовок черги або повертає null, якщо він порожній. |
Опитування об'єктів() | Він отримує та видаляє заголовок черги або повертає null, якщо він порожній. |
Елемент об'єкта() | Отримує дані з черги, але не видаляє її голову. |
Об'єкт peek() | Отримує дані з черги, але не видаляє її голову, або у випадку, якщо черга є чергою порожньою, вона отримає значення null. |
24) Згадайте методи, які надає клас Stack
Важливі методи, надані класом Stack:
- push(): Проштовхніть елемент у стек.
- порожній (): Цей метод визначає, порожній стек чи ні.
- поп (): Цей довідник - Java метод framework framework видаляє об'єкт зі стеку.
- пошук (): Цей метод шукає елементи в стеку.
- підглядати (): Цей довідник - Java Метод переглядає об'єкт стека, не видаляючи його.
25) Визначте emptySet() у Java рамка колекції
Метод emptySet(), який повертає порожній незмінний набір щоразу, коли програмісти намагаються видалити нульові елементи. Набір, який повертає emptySet(), можна серіалізувати. Синтаксис цього методу:
публічний статичний фінал встановити emptySet()
26) Розрізняйте колекцію та колекції
Різниця між колекцією та колекцією:
COLLECTION | колекції |
---|---|
Колекція є інтерфейсом. | Колекції - це клас. |
Він представляє групу об'єктів як єдине ціле. | Він визначає різні корисні методи для об’єктів колекції. |
Колекція є кореневим інтерфейсом Java Рамка колекції. | Колекції — це загальний корисний клас. |
Цей інтерфейс використовується для отримання структур даних колекції. | Цей клас містить статичні методи для маніпулювання структурою даних. |
27) Визначте LinkedHashSet у Java Структура колекції?
LinkedHashSet є підкласом класу під назвою HashSet і реалізує інтерфейс набору. Це добре впорядкована версія HashSet, яка підтримує подвійний зв’язаний список у всіх своїх елементах.
28) Яка різниця між Failfast і Failsafe?
Failfast | Безаварійності |
---|---|
Це не дозволяє змінювати колекцію під час ітерації. | Це дозволяє модифікувати колекцію під час ітерації. |
Він може викликати ConcurrentModificationException | Він не може створити жодного винятку. |
Він використовує оригінальну колекцію для обходу елементів. | Він використовує оригінальну копію колекції для проходження елементів. |
Додаткова пам'ять не потрібна. | Існує вимога додаткової пам'яті. |
29) Список представлень колекції інтерфейсу карти
Подання колекції інтерфейсу карти: 1) подання набору ключів, 2) подання набору значень і 3) подання набору записів.
30) Які переваги колекції Framework в Java?
Переваги Collection Framework в Java є:
- Java структура збору даних пропонує високоефективні та ефективні структури даних, які підвищують точність і швидкість програми.
- Програма розроблена спільно з Java структуру колекції легко підтримувати.
- Розробник може змішувати класи з іншими типами, що підвищує можливість повторного використання коду.
- Кнопка Java Framework колекції дозволяє програмістам змінювати примітивні типи колекції так, як їм подобається.
31) Який хороший спосіб сортування об’єктів колекції Java?
Хороший спосіб сортування Java об’єкти колекції використовують інтерфейси Comparable і Comparator. Розробник може використовувати Collections.sort(), елементи сортуються на основі порядку, зазначеного в compareTo().
Коли розробник використовує Collections, sort (Comparator), він сортує об’єкти залежно від compare() інтерфейсу Comparator.
32) Поясніть Вектор в Java
Вектор – це те саме, що масив. Він містить компоненти, до яких можна отримати доступ за допомогою значення індексу. Вектори можуть містити застарілий метод, який не є частиною структури колекції.
33) Яка різниця між Set і Map?
Установка | карта |
---|---|
Набір належить до package-java.util. | Карта належить пакету java.util. |
Він може розширити інтерфейс колекції. | Він не розширює інтерфейс колекції. |
Він не допускає повторюваних значень. | Це дозволяє повторювати значення. |
Набір може сортувати лише одне нульове значення. | Карта може сортувати кілька нульових значень. |
34) Визначте клас словника
Клас словника - це a Java клас, який має можливість зберігати пари ключ-значення.
35) Визначте EnumSet
java.util.EnumSet — це реалізація Set, яку можна використовувати з типами enum. EnumSet, що має всі елементи, має походити від одного типу enum, визначеного явно чи неявно. Він не синхронізований, а також заборонені нульові ключі. EnumSet надає такі методи, як EnumSetof(E first, E… rest), complementOf(EnumSet s) і copyOf(Collection c).
36) Які два способи видалити дублікати з ArrayList?
Вилучити дублікати з ArrayList можна двома способами:
- HashSet: Розробник може використовувати HashSet, щоб видалити повторюваний елемент із ArrayList. Недоліком є те, що він не може зберегти порядок вставки.
- LinkedHashSet: Розробники також можуть підтримувати порядок вставки, використовуючи LinkedHashSet замість HashSet.
37) Що таке IdentityHashMap?
IdentityHashMap — це клас, який реалізує інтерфейси Serializable, Clonable, Map і розширює клас AbstractMap. Він розроблений для випадку, коли є потреба в семантиці посилальної рівності.
38) Що таке WeakHashMap?
WeakHashMap є реалізацією Java Карта. Він використовується для зберігання слабких посилань на його ключі. Сортування за допомогою цієї карти дозволяє збирати пару ключ-значення як сміття. Його ключ не посилається за межами WeakHashMap.
39) Які є методи, щоб зробити колекцію потокобезпечною?
Нижче наведено такі методи, як зробити потоки збору безпечними.
- Collections.synchronizedList(список);
- Collections.synchronizedMap(map);
- Collections.synchronizedSet(набір);
40) Поясніть Не підтримуєтьсяOperationException
Не підтримуєтьсяOperationException — це виняток, який виникає для методів, які не підтримуються фактичним типом колекції.
Наприклад, розробник створює список лише для читання за допомогою «Collections.unmodifiableList(list)» і викликає метод call(), add() або remove(). Він має чітко видавати UnsupportedOperationException.
41) Назвіть класи колекції, які надають випадковим елементам доступ до своїх елементів
Класи колекції, які надають випадковим елементам доступ до своїх елементів, це: 1) ArrayList, 2) HashMap, 3) TreeMap і 4) Hashtable.
42) Поясніть різницю між Queue і Deque.
Чергу | Deque |
---|---|
Це називається односторонньою чергою | Це називається двосторонньою чергою |
Елементи в черзі додаються або видаляються з одного кінця | Елементи в чергу додаються з будь-якого кінця, можна додавати та видаляти з обох кінців |
Він менш універсальний. | Він більш універсальний. |
43) Згадайте реалізований інтерфейс List and Set
Клас, що реалізує інтерфейс списку: 1) ArrayList, 2) Vector і 3) LinkedList.
Клас, що реалізує інтерфейс Set: 1) HashSet і 2) TreeSet.
44) Поясніть шаблон проектування, за яким слідує Ітератор
Ітератор слідує деталям шаблону проектування ітератора. Він надає розробнику можливість переходити між колекціями об’єктів за допомогою спільного інтерфейсу, не знаючи його реалізації.
45) Що таке peek() інтерфейсу Queue?
Peek () — метод інтерфейсу черги. Він отримує всі елементи, але не видаляє голову черги. Якщо черга порожня, цей метод поверне значення null.
46) Що таке CopyOnWriteArrayList?
CopyOnWriteArrayList — це варіант ArrayList, у якому такі операції, як add і set, реалізуються шляхом створення копії масиву. Це потокобезпечно, тому не створює ConcurrentModificationException. Цей ArrayLists дозволяє використовувати всі елементи, включаючи null.
47) Розрізняйте ArrayList і LinkedList
Різниця між ArrayList і LinkedList така:
ArrayList | LinkedList |
---|---|
Він використовує динамічний масив. | Він використовує подвійний список. |
ArrayList не бажаний для маніпуляцій. | LinkedList є кращим для маніпуляцій. |
ArrayList забезпечує довільний доступ. | LinkedList не надає довільного доступу. |
ArrayList зберігає лише об’єкти, тому потребує менше накладних витрат пам’яті | LinkedList зберігає об’єкт, а також об’єкт адреси; отже, потрібно більше накладних витрат пам’яті. |
48) Поясніть методи інтерфейсу ітератора
Методи інтерфейсу ітератора:
Метод | Опис |
---|---|
public boolean hasNext() | Він повертає істину в ітераторі, що має елементи; інакше він повертає false. |
публічний об'єкт next() | Цей метод повертає елемент і переміщує покажчик до наступного значення. |
public void remove() | Цей довідник - Java метод може видалити останні елементи, повернуті ітератором. Public void remove() використовується рідше. |
49) Що таке методи класу HashSet?
Методами класу HashSet є:
Методи | Опис |
---|---|
логічне додавання (об'єкт o) | Цей метод додає елемент згадки до цього набору, якщо він ще не присутній. |
логічний містить (об'єкт o): | Він повертає true, якщо набір містить вказаний елемент. |
void clear(): | Цей метод видаляє елементи набору. |
логічне isEmpty(): | Він повертає істину у випадку, коли набір не має елементів. |
логічне видалення (об'єкт o): | Вилучає вказаний елемент із набору. |
об'єкт clone(): | Цей метод повертає копію екземпляра HashSet: самі елементи не клонуються. |
ітератор iterator() | Він повертає ітератор для елементів цього набору. |
int size(): | Він повертає кількість елементів, доступних у наборі. |
50) Які існують методи Java Клас TreeSet?
Методи Java Клас TreeSet це:
Методи | Descriptіони |
---|---|
логічне значення addAll(Collection c) | Додайте всі елементи вказаної колекції до цього набору. |
логічний містить (об'єкт o) | Повертає true, якщо набір містить елемент згадування. |
логічне isEmpty() | Цей довідник - Java метод повертає true, якщо цей набір не містить елементів. |
логічне видалення (об'єкт o) | Видалити вказаний елемент із набору. |
void add (Object o) | Він додає вказаний елемент до набору. |
void clear() | Цей довідник - Java метод видаляє всі елементи з набору. |
51) Поясніть Linked HashSet
Java Клас LinkedHashSet — це реалізація зв’язаного списку та хеш-таблиці інтерфейсу Set. Він містить такі ж унікальні елементи, як і HashSet. Пов’язаний HashSet в Java також надає додаткові операції з набором, які можуть підтримувати порядок вставки.
52) Які важливі методи використовуються у зв’язаному списку?
У пов’язаному списку використовуються такі важливі методи:
Метод | Опис |
---|---|
логічне додавання (об'єкт o) | Він використовується для додавання зазначеного елемента в кінець вектора. |
логічний містить (об'єкт o) | Це метод, який повертає true, якщо цей список містить вказаний елемент. |
void add (індекс int, елемент Object) | Вставляє елемент у вказаний елемент у векторі. |
void addFirst(Object o) | Він використовується для вставки заданого елемента на початку. |
void addLast(Object o) | Він використовується для додавання заданого елемента в кінець. |
Int size() | Цей метод можна використовувати для повернення загальної кількості елементів у списку. |
логічне видалення (об'єкт o) | Він може видалити перше входження зазначеного елемента з цього списку. |
int indexOf(Object element) | Цей довідник - Java метод повертає індекс із першим входженням елемента згадки в цьому списку або -1. |
int lastIndexOf(Object element) | Це Java метод, який повертає індекс із останнім входженням зазначеного елемента в цьому списку, або -1. |
53) Перелічіть різні класи, доступні в наборах
У наборах доступні різні класи: HashSet, TreeSetand і LinkedHashSet.
54) Список методів, доступних у Java Інтерфейс черги
- логічне додавання (об'єкт)
- логічна пропозиція (об'єкт)
- об'єкт видалити()
- об'єкт poll()
- елемент об'єкта()
- об'єкт peek()
55) Розрізняйте список і набір.
список | Установка |
---|---|
Упорядкована колекція елементів | Невпорядкована сукупність елементів |
Зберігає порядок вставки | Не зберігає порядок вставки |
Допускаються повторювані значення | Повторювані значення не допускаються |
Можна зберегти будь-яку кількість нульових значень | Можна зберегти лише одне нульове значення |
ListIterator можна використовувати для проходження списку в будь-якому напрямку | ListIterator не можна використовувати для обходу набору |
Містить застарілий клас під назвою vector | Не містить застарілих класів |
Java Колекції Інтерв'ю Запитання та відповіді для 5+ років досвіду
56) Поясніть кожен цикл на прикладі
Цикл For-Each є іншою формою циклу for, який використовується для обходу масиву. Це значно зменшує код, і в циклі не використовується індекс або, точніше, лічильник.
Приклад для кожного циклу:
class UsingForEach { public static void main(String[] args) { String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"}; //The conventional approach of using the for loop System.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 loop for (String strTemp : arrData){ System.out.println(strTemp); } } }
57) Поясніть оператор алмаз
Оператор Diamond дозволяє компілятору збирати аргументи типу загального класу. в Java SE, розробник може замінити параметризований конструктор порожнім набором параметрів (<>), відомим як ромбовидний оператор.
58) Поясніть інтерфейс довільного доступу
Інтерфейс RandomAccess використовується реалізаціями List для вказівки того, що вони підтримують швидку роботу.
59) Назвіть класи колекції, які реалізують інтерфейс довільного доступу
JavaПакет .util містить такі класи, які можуть реалізувати інтерфейс довільного доступу: CopyOnWriteArrayList, Stack, ArrayList і Vector.
60) Як об’єднати кілька ArrayLists?
Список надає метод 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. |
видалити (індекс) | Цей метод ArrayList може видалити елемент у певній позиції. |
видалити (об'єкт o) | Він може видалити перше входження елемента згадки з ArrayList. |
видалити все() | Він може видалити список елементів, які знаходяться в певній колекції. |
removeIf(Предикат фільтр) | Цей метод видаляє елементи, які задовольняють згадку про предикат. |
64) Поясніть карту. запис на карті
Map.entry — це a 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() is O(1).
- Видалення елемента: У випадку, якщо розробники видаляють елемент за допомогою remove(int index), продуктивність ArrayList можна обчислити за допомогою згаданої операції remove(int index) методу O(n – index).
67) Поясніть клас LinkedList
Клас LinkedList в Java реалізує Deque і List, використовуючи подвійний зв'язаний список. Існує приватний вузол класу в подвійнозв’язаному списку, який забезпечує його структуру. Він також має змінну item для зберігання значення та посилання на клас Node. Це можна використовувати для підключення наступного та попереднього вузлів.
68) Наведіть приклад Hashmap
Приклад Hashmap:
import java.util.HashMap; import java.util.Map; public class Sample_TestMaps{ public static void main(String[] args){ Map<String, String> objMap = new HashMap<String, String>(); 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) Як повторити карту?
Розробник не може безпосередньо ітерувати карту, але цей інтерфейс має два методи, які надають перегляд набору карт. Ці методи:
- встановити >entrySet(): Це метод, який повертає набір із записами, згаданими на карті. Ці записи, як правило, є об'єктами, які мають тип Map. Вхід.
- встановити keySet(): Цей довідник - Java метод повертає набір, який має ключ карти.
70) Поясніть Treemap в Java
TreeMap — це клас, який реалізує інтерфейс Map LinkedHashMap і HashMap. Він також може реалізовувати інтерфейс NavigableMap і може розширювати клас AbstractMap.
71) Яка різниця між Hashmap і Hashtable?
Хеш-карта | Хеш -таблиця |
---|---|
Він не синхронізований. | Він синхронізований. |
HashMap дозволяє один ключ як нульове значення. | HashTable не допускає нульових значень. |
Ітератор використовується для обходу HashMap. | Для обходу HashTable використовується або Iterator, або Enumerator. |
Він може використовуватися як для HashTable, так і для HashMap і є безвідмовним. | Він може використовуватися з HashTable і є безвідмовним. |
HashMap працює швидше, ніж HashTable. | Hashtable не набагато швидший порівняно з HashMap. |
72) Поясніть внутрішню роботу HashSet в Java
HashSet in Java внутрішньо використовує HashMap для зберігання елементів. Він також може зберігати унікальні значення без повторюваних значень.
In Java, розробник HashSet може мати метод add(E e), який приймає лише елемент для додавання як параметр. Він не приймає пару ключів і значень.
73) Поясніть позначення Big-O на прикладі
Нотація Big-O відображає продуктивність алгоритму як кількість елементів у ArrayList. Розробник може використовувати нотацію Big-O для вибору реалізації колекції. Він базується на продуктивності, часу та пам’яті.
Наприклад, ArrayList get(index i) — це метод для виконання операції в постійному часі. Це не залежить від загальної кількості елементів, доступних у списку. Тому продуктивність у нотації Big-O дорівнює O(1).
74) Поясніть найкращі практики в Java Колекція Framework
Кращі практики в Java Структура колекції:
- Вибір правильного типу колекції залежить від потреби.
- Уникайте повторного хешування або зміни розміру, оцінюючи загальну кількість елементів, які будуть зберігатися в класах колекції.
- Написати Java програма з точки зору інтерфейсів. Це допоможе розробнику без зусиль змінити його реалізацію в майбутньому.
- Розробник може використовувати Generics для безпеки типів.
- Використовуйте незмінні класи, надані Java Набір для розробки. Уникайте застосування equals() і hashCode() для спеціальних класів.
- Програміст повинен використовувати службовий клас Collections для алгоритмів або для отримання доступних лише для читання, синхронізованих або порожніх колекцій. Це підвищить можливість повторного використання коду з низьким рівнем обслуговування.
75) Поясніть різні види черг в Java
Існує три типи черг Java:
- Пріоритетна черга: Це особливий тип черги, у якому елементи сортуються відповідно до їх природного порядку або спеціального компаратора.
- Кругова черга: Це тип черги, в якому операції користувача виконуються на основі методу FIFO. Останній елемент з'єднується з першою позицією, щоб вийшло коло.
- Double-завершена черга: Двостороння черга — це абстрактний тип даних, який узагальнює чергу. Елементи в цій черзі можна додавати або видаляти з голови або хвоста.
76) Яка різниця між стеком і чергою?
Стек | Чергу |
---|---|
Принцип роботи стека - LIFO. | Робочим принципом черги є FIFO. |
Один кінець використовується для виконання вставки або видалення елементів. | Один кінець використовується для виконання вставки, а інший кінець використовується для видалення елементів. |
Він використовує один покажчик. | Він використовує два покажчики в простій черзі. |
Він не має жодного варіанту. | Він має такі варіанти, як пріоритетна черга, кругова черга, подвійна черга. |
Він простий у використанні. | Його непросто використовувати. |
77) Яка різниця між масивом і стеком?
Різниця між масивом і стеком така:
масив | Стек |
---|---|
Це набір елементів, які ідентифікуються індексом. | Це операція збору, яка виконує функції push і pop. |
Він має однакові елементи типів даних. | Він має різні типи даних. |
Елементи можна видаляти або додавати в масив за допомогою операції довільного доступу. | Елементи можна видалити або додати в стек за допомогою операції LIFO. |
78) Визначити Iterator()
Iterator() — це інтерфейс, який надає методи для повторення колекції. Ітератор може замінити перерахування в Java. Це дозволяє абоненту видаляти елементи з колекції. Метод забезпечує загальний шлях для обходу з використанням елементів колекції та реалізації шаблону проектування ітератора.
79) Які є різні способи перебору списку?
Java колекція Програміст Framework може перебирати список двома способами: 1) за допомогою ітератора та 2) за допомогою його для кожного петля.
80) Які переваги стека?
Перевагами стека є:
- Це допомагає вам керувати даними за методом «Останній прийшов, першим вийшов» (LIFO), який неможливий із зв’язаним списком і масивом.
- Під час виклику функції локальні змінні зберігаються в стеку, який автоматично знищується після повернення.
- Стек використовується, коли змінна не використовується поза цією функцією.
- Це дозволяє вам контролювати, як пам'ять розподіляється та звільняється.
- Стек автоматично очищає об'єкт.
- Нелегко пошкодити
- Змінні не можна змінити розмір.
Ці запитання для співбесіди також допоможуть вам у життєдіяльності (усному)