50 найпопулярніших запитань і відповідей на інтерв’ю (2025)
1) Що ви маєте на увазі під масивом?
- Масив — це набір даних подібного типу.
- Об’єкти масиву зберігають кілька змінних одного типу.
- Він може містити примітивні типи та посилання на об’єкти.
- Масиви завжди фіксовані
Безкоштовне завантаження у форматі PDF: масив запитань і відповідей на інтерв’ю
2) Як створити масив?
Масив оголошується так само, як оголошується змінна, але вам потрібно додати [] після типу. приклад: int [] intArray; Ми можемо оголосити масив Java як поле, статичне поле, локальну змінну або параметр, як і будь-яку іншу змінну. Масив — це набір змінних такого типу. Ось ще кілька прикладів оголошення масивів Java:String [] stringArray;
MyClass [] myClassArray;Те ж саме стосується інших мов програмування.
3) Переваги та недоліки Array?
переваги:- Ми можемо розмістити інші структури даних, такі як стеки, черги, пов’язані списки, дерева, графіки тощо в Array.
- Масиви можуть сортувати декілька елементів одночасно.
- Ми можемо отримати доступ до елемента Array за допомогою індексу.
- Ми повинні заздалегідь оголосити розмір масиву. Однак ми можемо не знати, який розмір нам потрібен під час оголошення масиву.
- Масив має статичну структуру. Це означає, що розмір масиву завжди фіксований, тому ми не можемо збільшити або зменшити виділення пам’яті.
4) Чи можемо ми змінити розмір масиву під час виконання?
Ні, ми не можемо змінити розмір масиву. Хоча доступні подібні типи даних, які дозволяють змінювати розмір.5) Чи можна оголосити масив без призначення розміру масиву?
Ні, ми не можемо оголосити масив без призначення розміру. Якщо ми оголосимо масив без розміру, це викличе помилку часу компіляції приклад: marks = new int []; //ПОМИЛКА КОМПІЛЯТОРА6) Яке значення за замовчуванням масиву?
Будь-який новий масив завжди ініціалізується значенням за замовчуванням, як описано нижче- Для byte, short, int, long – значення за умовчанням нуль (0).
- Для float, double – значення за умовчанням 0.0.
- Для Boolean – значення за умовчанням false.
- Для об’єкта – значення за замовчуванням нульове.
7) Як надрукувати елемент масиву?
Ось код для друку елемента масиву.int schoolmarks [] = {25, 30, 50, 10, 5 }; System.out.println (Arrays.toString (schoolmarks));Вихід: [25, 30, 50, 10, 5]
8) Як порівняти два масиви?
Якщо 2 масиви мають однаковий розмір і тип даних, порівняння можна виконати за допомогою «Arrays.equal ()»int [] num1 = { 1, 2, 3 }; int[] num2 = { 4, 5, 6 }; System.out.println (Arrays. Equals (num1, num2)); //false Int [] num3 = {1, 2, 3}; System.out.println (Arrays.equals (num1, num3)); //true
9) Як відсортувати масив?
Це можливо за допомогою вбудованого статичного методу, тобто масивів. сортувати ().Int Marks [] = {12, 5, 7, 9}; Arrays.sort(Marks); System.out.println(Arrays.toString(Marks));//[5, 7, 9, 12]
10) Чи можемо ми оголосити розмір масиву як від’ємне число?
Ні. Ми не можемо оголосити від’ємне ціле число як розмір масиву. Якщо ми оголосимо, помилки під час компіляції не буде. Однак ми отримаємо виключення NegativeArraySizeException під час виконання.11) Коли ми отримаємо ArrayStoreException?
Це виняток під час виконання. Наприклад, ми можемо зберігати лише рядкові елементи в рядковому масиві. Якщо хтось спробує вставити цілочисельний елемент у цей рядковий масив, ми отримаємо ArrayStoreException під час виконання.12) Чи можемо ми додати або видалити елемент після призначення масиву?
Ні це неможливо.13) Що означає анонімний масив? Поясніть на прикладі?
Анонімний масив означає масив без жодного посилання. Приклад:-//Creating anonymous arrays System.out.println(new int[]{11, 12, 13, 14, 15}.length); //Output : 5 System.out.println(new int[]{31, 94, 75, 64, 41}[1]); //Output : 94 }}
14) Чи є різниця між int[] a та int a[]?
Без різниці обидва правової Заява15) Існує 2 типи даних типу int array. Один містить 50 елементів, а інший містить 30 елементів. Чи можемо ми призначити масив з 50 елементів масиву з 30 елементів?
Так, ми можемо призначити, якщо вони повинні бути одного типу. Компілятор перевірятиме лише тип масиву, а не розмір.int[] ab = new int[30]; int[] cd = new int[50]; a = b; //Compiler checks only type, not the size
16) int a[] = new int[3]{1, 2, 3} – це правильний спосіб оголошення масивів у java?
Ні. Ми не повинні згадувати розмір масиву, коли ми надаємо елементи масиву.17) Як скопіювати масив в інший масив?
Для копіювання масиву в Java доступні чотири прийоми.- Використання циклу For
- Використання методу “Arrays.copyOf()”.
- Використання методу “System.arraycopy()”.
- Використання методу “clone()”.
18) Що таке «зубчасті» масиви в java?
Зубчасті масиви – це масиви, які містять масиви різної довжини. Зубчасті масиви також відомі як багатовимірні масиви.19) Коли виникає виключення ArrayIndexOutOfBoundsException?
Це виняток під час виконання. Це відбувається, коли програма намагається отримати доступ до недійсного індексу масиву. Індекс вищий за розмір масиву або від’ємний індекс.20) Чи можете ви пояснити різні етапи оголошення багатовимірних масивів у Java?
//2D Arrays int[][] twoArray1; int twoArray2[][]; int[] twoArray3[]; //3D Arrays int[][][] threeArray1; int threeArray2[][][]; int[] threeArray3[][]; int[][] threeArray4[]; //4D Arrays int[][][][] fourArray1; int fourArray2[][][][]; int[] fourArray3[][][]; int[][] fourArray4[][]; int[][][] fourArray5[];
21) Як ми шукаємо певний елемент у масиві?
Ми можемо використовувати метод Arrays.binarySearch(). Цей метод використовує бінарний алгоритм пошуку.22) Якщо ви не ініціалізуєте масив, що станеться?
Масив матиме значення за замовчуванням.23) Як ми знаходимо повторювані елементи в масиві?
Використання методу грубої сили: У цьому методі ми порівнюємо кожен елемент масиву з іншими елементами. Якщо будь-які два елементи виявляються рівними або однаковими, ми оголошуємо їх дублікатами. Нижче знайдіть код для того самогоpublic class DuplicatesInArray { public static void main(String[] args) { String[] strArray1 = {"abc1", "def1", "mno1", "xyz1", "pqr1", "xyz1", "def1"}; for (int i = 0; i < strArray1.length-1; i++) { for (int j = i+1; j < strArray1.length; j++) { if( (strArray1[i].equals(strArray1[j])) && (i != j) ) { System.out.println("Duplicates : "+strArray1[j]); }}}} }Вихід: Дубльований елемент: def1 Дубльований елемент: xyz1
24) Чи можемо ми використовувати Generics з масивом?
Ні, ми не можемо використовувати Generic з масивом.25) Як виконати ітерацію масиву в java?
1) Використання нормального циклу forpublic class MainClass1 { public static void main(String[] args) { int[] a1 = new int[]{45, 12, 78, 34, 89, 21}; //Iterating over an array using normal for loop for (int i = 0; i < a1.length; i++) { System.out.println(a1[i]); }}}2) Використання розширеного нового циклу for
public class MainClass1 { public static void main(String[] args) { int[] a2 = new int[]{45, 12, 78, 34, 89, 21}; //Iterating over an array using extended for loop for (int i: a2){ System.out.println(i); }}}
26) Де в Java виділяється пам'ять для масивів?
У Java пам’ять для масивів завжди виділяється в купі, оскільки масиви в Java є об’єктами.27) Чи можете ви сказати мені назву класу масиву в Java?
Масив - це об'єкт. Щоб повернути назву класу, ми можемо використати метод getClass().getName() для об’єкта.28) “int a[] = new int[3]{1, 2, 3}” – це законний спосіб визначення масивів?
Ні. Ми не повинні оголошувати розмір масиву, коли ми надаємо елементи масиву.29) Що таке двовимірний масив?
Масив масиву в Java. Ми можемо оголосити їх такимиint[][] p = new int[3][3]яка є матрицею 3×3.
30) Чи є у нас тривимірні масиви в Java?
Так, Java підтримує N-вимірний масив. Багатовимірний масив у Java — це не що інше, як масив масиву. Приклад: 2-вимірний масив — це масив одновимірного масиву.31) Чи можемо ми зробити масив непостійним у Java?
Так, ми можемо зробити масив мінливим у Java, але ми робимо мінливим лише змінну, яка вказує на масив.32) Що буде результатом наведеного нижче коду?
int myArr[] = new int [7]; System.out.print(myArr);Відповідь: виведенням буде значення Garbage. myArr — це змінна масиву, myArr вказує на масив, якщо він складається з цілих чисел. Друк myArr виведе сміттєве значення. Це не те саме, що друк myArr[0].
33) Який крок для доступу до елементів масиву в Java?
Ми можемо отримати доступ за допомогою «індексу». Індекс починається з нуля (0), тому перший елемент зберігається в нульовому місці, а останній елемент буде Array.length – 1. Приклад:- String strArr[] = новий рядок []{“A”, “B”, “C”, “D”, “E”}; strArr[0] означає «A», а strArr[2] означає «C».34) Чи можете ви сказати мені про різницю між Array і ArrayList?
масив | ArrayList |
Масив є статичним із фіксованим розміром, який не можна змінити після затримки. | ArrayList має не статичний, а динамічний розмір. Коли елементи додаються до ArrayList, його ємність або розмір автоматично зростає. |
Він містить як примітивні типи даних, так і об'єкти класу. | ArrayList не містить примітивних типів даних, але містить записи об’єктів. |
У масиві немає функції Generics. | ArayList має функцію Generics. |
35) Ми знаємо, що масиви є об’єктами, то чому ми не можемо написати strArray.length()?
Масиви — це посилання на об’єкти, як класи в Java. Ми можемо використовувати такі методи Object, як toString () і ще один hashCode () проти Array. Довжина є елементом даних масиву, тому це не метод. Ось чому ми використовуємо strArray.length.36) Як знайти відсутній елемент у масиві цілих чисел від 1 до 7?
Рішення для вирішення цієї проблеми полягає в тому, щоб обчислити суму всіх чисел у масиві та порівняти з очікуваною сумою, різниця буде відсутнім числом.int ar [] = new int[]{1,2,3,5,6,7};
- Отримати суму чисел
- всього = n*(n+1)/2
- Відніміть усі числа від суми і
- ви отримаєте пропущене число.
- Відповідно до наведеної нижче логіки sumOfNnumberss дорівнює 7*(7+1)/2=28
int n = ar.length+1; int total = n*(n+1)/2; for(int i =0;i<ar.length;i++){ total -=ar[i];} System.out.println(total);
37) Як знайти дублікат у масиві?
String str = "HI RAHUL I AM FINE RAHUL"; // String with a duplicate word. String[] words = str.split(" "); // Splitting and converting to Array . for(int i = 0; i < words.length; i++){ //iterating array inside for loop for(int j = i+1; j < words.length; j++){ //iterating same array inside another for loop if (words[i].equals(words[j])){ // Using equal method i am verifying which word is repeating . System.out.println( words[i]); // here it will print duplicate . }}}
38) Як перевірити, чи містить масив значення чи ні?
Ось String[] зі значеннямиpublic static final String[] myNames = new String[] {"B","A","K","C"};Якщо myNames містить це значення, воно поверне true, інакше false. Ось два методи isExists() і contains(). Обидва методи повертають true, якщо значення доступне, інакше повертають false. Перший метод Він перетворює масив на ArrayList. Після цього він перевірить, чи містить масив якесь значення, тоді він поверне істину, інакше поверне хибність.
public static <T> boolean isExists(final T[] array, final T object) { return Arrays.asList(array).contains(object); }Другий спосіб Цей метод виконує цикл по масиву та використовує метод equal() для пошуку елемента. Це фактично виконує лінійний пошук по масиву в Java. Він поверне true, якщо масив надав значення.
public static <T> boolean contains(final T[] array, final T v) { for (final T e : array) { if (e == v || v != null && v.equals(e)) { return true; } } return false; } }
39) Як отримати найбільше та найменше число в масиві?
Відповідь: Логіка цієї проблеми:- Ми використовуємо дві змінні для зберігання найбільшого та найменшого чисел.
- Спочатку ми ініціалізуємо найбільше Integer.MIN_VALUE і
- Далі ми ініціалізуємо найменший за допомогою Integer.MAX_VALUE.
- У кожній ітерації циклу for ми будемо порівнювати поточне число з найбільшим і найменшим числом і оновлюватимемо
- Якщо число більше за найбільше, то воно не може бути меншим за найменше. Це означає, що не потрібно перевіряти, чи справджується перша умова,
- Ми будемо використовувати блок коду if-else, де ще частина виконуватиметься, лише якщо перша умова false означає невірне.
import java.util.Arrays; public class MaximumMinimumArrayExample{ public static void largestAndSmallest(int[] numbers) { int largest = Integer.MIN_VALUE; int smallest = Integer.MAX_VALUE; for (int number : numbers) { if (number > largest) { largest = number; } else if (number < smallest) { smallest = number; } } System.out.println("Largest is : " + largest); System.out.println("Smallest is : " + smallest); } }
40) Як зробити перетин двох відсортованих масивів?
Відповідь: Логіка: надрукувати елемент, якщо елемент присутній або доступний в обох масивах.- Використовуйте дві індексні змінні i та j, після цього початкові значення i = 0, j = 0
- Якщо arr01 [i] менше, ніж arr02 [j], тоді збільште i.
- Якщо arr01 [i] більше, ніж arr02 [j], тоді збільшується j.
- Якщо обидва однакові, виведіть будь-яке з них і збільште i та j.
public static void getIntersection(int arr01[], int arr02[], int m, int n){ int i = 0, j = 0; while (i < m && j < n){ if (arr01[i] < arr02[j]) i++; else if (arr02[j] < arr01[i]) j++; else{ System.out.print(arr02[j++]+" "); i++; } } } public static void main(String args[]){ int arr01[] = {1, 2, 4, 5, 6}; int arr02[] = {2, 3, 5, 7}; int m = arr01.length; int n = arr02.length; getIntersection(arr01, arr02, m, n); }
41) Як отримати два верхніх числа з масиву?
Відповідь: Логіка:- Ми призначимо першій змінній max01 Integer.MIN_VALUE
- Ми повторимо цей масив і порівняємо кожне число з max01 і max02,
- Якщо поточне число більше за max1, тоді призначте max01 = число та max02 = max1.
- Інакше, якщо воно більше за max02, ми оновимо лише поточне число max02.
- Наприкінці ітерації max01 і max02 вказують на два перших числа з заданого масиву.
import java.util.Arrays; public class TopTwoMaximumNumbers{ public static void main(String args[]) { topTwoNumbers(new int[]{20, 34, 21, 87, 92, Integer.MAX_VALUE}); topTwoNumbers(new int[]{0, Integer.MIN_VALUE, -2}); topTwoNumbers(new int[]{Integer.MAX_VALUE, 0, Integer.MAX_VALUE}); topTwoNumbers(new int[]{1, 1, 0}); } public static void topTwoNumbers(int[] numbers) { int max01 = Integer.MIN_VALUE; int max02 = Integer.MIN_VALUE; for (int number : numbers) { if (number > max01) { max02 = max01; max01 = number; } else if (number > max02) { max02 = number; } } System.out.println("First largest number is : " + max01); System.out.println("Second largest number is : " + max02); } }
42) Як вирізати або видалити елемент з масиву?
Відповідь: Логіка така: ми можемо видалити або вирізати елемент за допомогою Apache Commons ArrayUtils на основі індексу. ArrayUtils має кілька перевантажених методів remove().import java.util.Arrays; import org.apache.commons.lang.ArrayUtils; public class RemoveFromArray{ public static void main(String args[]) { //let's create an array for demonstration purpose int[] testArr = new int[] { 10, 102, 13, 14, 105}; System.out.println("Array size : " + testArr.length ); System.out.println("Find Contents : " + Arrays.toString(testArr)); //let's remove or delete an element from Array using Apache Commons ArrayUtils testArr = ArrayUtils.remove(testArr, 2); //removing element at index 2 //Size of array must be 1 less than original array after deleting an element System.out.println("Size of array after removing : " + testArr.length); System.out.println("Content of Array : "+ Arrays.toString(testArr)); } }
43) Яка логіка перевернути масив?
Відповідь: Логіка: надрукувати елемент у зворотному порядку.- Заявіть a
String Array String[] s = new String[]{"My","Leg","is","cut"};
- Ітерація за допомогою циклу for, отримання всіх елементів у зворотному порядку означає кінцеву точку до початкової точки.
public static void main(String[] args) {String[] s = new String[]{"My","Leg","is","cut"}; for(int i=s.length-1; i>=0; i--){ System.out.println("reverse "+s[i]);}}
44) Як знайти другий за величиною елемент у масиві цілих чисел?
Відповідь: Логіка:- Ітерація заданого масиву за допомогою циклу for.
- (спочатку якщо умова arr[i] > найбільший):
- Якщо поточне значення масиву більше за найбільше значення, тоді
- Перемістити найбільше значення до secondLargest і зробити поточне значення найбільшим
- (друга умова if arr[i] > secondLargest )
- Якщо поточне значення менше найбільшого і
public static void main(String[] args) { int myArr[] = { 14, 46, 47, 86, 92, 52, 48, 36, 66, 85 }; int largest = myArr[0]; int secondLargest = myArr[0]; System.out.println("The given array is:" ); for (int i = 0; i < myArr.length; i++) { System.out.print(myArr[i]+"\t"); } for (int i = 0; i < myArr.length; i++) { if (myArr[i] > largest) { secondLargest = largest; largest = myArr[i]; } else if (myArr[i] > secondLargest) {secondLargest = myArr[i]; }} System.out.println("\nSecond largest number is:" + secondLargest); }
45) Напишіть програму для підсумовування значень заданого масиву.
Відповідь: Логіка:- Оголошіть і призначте int змінну, яка є sum =0.
- Ітерація заданого масиву за допомогою циклу for.
- Додайте всі елементи масиву та збережіть у цій змінній суму.
Public static void main(String[] args) { int my_array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int sum = 0; for (int i: my_array) sum += i; System.out.println("The sum is " + sum); }
46) Як відокремити нулі від ненулів у масиві?
Відповідь: Логіка:- Ініціалізація лічильника до 0
- Обхід inputArray зліва направо
- Якщо inputArray[i] відмінний від нуля
- Призначення inputArray[i] до inputArray[лічильник]
- Збільшення лічильника на 1
- Присвоєння нуля іншим елементам
Public class SeparateZerosFromNonZeros { static void moveZerosToEnd(int inputArray[]) { int counter = 0; for (int i = 0; i < inputArray.length; i++) { if(inputArray[i] != 0) { inputArray[counter] = inputArray[i]; counter++; } } while (counter < inputArray.length) { inputArray[counter] = 0; counter++; } System.out.println(Arrays.toString(inputArray)); } public static void main(String[] args) { moveZerosToEnd(new int[] {12, 0, 7, 0, 8, 0, 3}); moveZerosToEnd(new int[] {1, -5, 0, 0, 8, 0, 1}); moveZerosToEnd(new int[] {0, 1, 0, 1, -5, 0, 4}); moveZerosToEnd(new int[] {-4, 1, 0, 0, 2, 21, 4}); } }
47) Напишіть програму для вставки елемента в певну позицію в масиві?
Відповідь: Логіка:- Вставити елемент у 3-ю позицію масиву (індекс->2, значення->5)
- Повторіть заданий масив у зворотному порядку, використовуючи цикл for.
- Тепер вставте задану позицію та значення після циклу for.
Public static void main(String[] args) { int[] my_array = {25, 14, 56, 15, 36, 56, 77, 18, 29, 49}; int Index_position = 2; int newValue = 5; System.out.println("Original Array : "+Arrays.toString(my_array)); for(int i=my_array.length-1; i > Index_position; i--){ my_array[i] = my_array[i-1]; }my_array[Index_position] = newValue; System.out.println("New Array: "+Arrays.toString(my_array)); }
48) Як отримати індекс елемента масиву?
Відповідь: Логіка:- На кожному кроці він перевіряє значення вхідного ключа зі значенням середнього елемента масиву.
- Якщо ключі збігаються, він повертає позицію. В іншому випадку, якщо ключ менший за ключ середнього елемента,
- Потім він повторить цикл while. Якщо в масиві, що залишився, виконано пошук і він зменшений до нуля, він поверне -1, що означає не знайдено
public static int findIndex (int[] my_array, int t) { int startPoint = 0; int endPoint = my_array.length - 1; while (startPoint <= endPoint) { int mid = (startPoint + end) / 2; if (key == my_array[mid]) { return mid; } if (key < my_array[mid]) { endPoint = mid - 1; } else { startPoint = mid + 1; } } return -1; } Public static void main(String[] args) { int[] arr = {2, 4, 6, 8, 10, 12, 14, 16}; System.out.println("Key 14's position: "findIndex(arr, 14)); int[] arr1 = {6,34,78,123,432,900}; System.out.println("Key 432's position: "+findIndex(arr1, 432)); }
49 Чи можемо ми розширити масив після ініціалізації?
Відповідь: логіка така: ми можемо розширити масив після ініціалізації, додавши новий масив. Нижче наведено приклад.Public static void main(String[] args) { String [] names = new String[] { "A", "B", "C" }; String [] extended = new String[5]; extended [3] = "D"; extended [4] = "E"; System.arraycopy(names, 0, extended, 0, names.length); //here we are extending with new array extended[3] and extended[4]. for (String str: extended){ System.out.println(str); } }виведення A, B, C, D, E.
50) Як заповнити елемент (відразу ініціалізувати) в масиві?
Відповідь: цей приклад заповнює (ініціалізує всі елементи масиву одним коротким) масив за допомогою методу Array.fill(назва масиву, значення) і методу Array.fill(назва масиву, початковий індекс, кінцевий індекс, значення) Клас Java Util.import java.util.*; public class FillTest { public static void main(String args[]) { int array[] = new int[6]; Arrays.fill(array, 100); for (int i = 0, n = array.length; i < n; i++) { System.out.println(array[i]); } System.out.println(); Arrays.fill(array, 3, 6, 50); for (int i = 0, n = array.length; i< n; i++) { System.out.println(array[i]);}}}вихід є
100,100,100,100,100,100 100,100,100,50,50,50
Що щодо передачі масиву як параметрів функціям
Q14 різниця між a[] і []a
Після першого оголошення типу ви не можете створити інший масив (того самого типу даних).
Але ви можете після оголошення другого типу, тобто.
Int []a, b, c= новий int[розмір]