50 nejčastějších otázek a odpovědí na pohovor (2025)
Zde jsou otázky a odpovědi na pohovor Array pro začátečníky i zkušené kandidáty, aby získali svou vysněnou práci. Pole jsou nedílnou součástí programování a pole používají různé kódovací jazyky jako C, C++, Python, Java a Perl.
1) Co myslíte polem?
- Pole je sada podobného datového typu.
- Objekty Arrays ukládají více proměnných stejného typu.
- Může obsahovat primitivní typy a odkazy na objekty.
- Pole jsou vždy pevná
Zdarma ke stažení ve formátu PDF: Otázky a odpovědi v rámci rozhovoru
2) Jak vytvořit pole?
Pole je deklarováno podobně jako proměnná, ale za typ je třeba přidat []. Příklad: int[] intArray; Pole v Javě můžeme deklarovat jako pole, statické pole, lokální proměnnou nebo parametr, stejně jako jakoukoli jinou proměnnou. Pole je kolekce proměnných daného typu. Zde je několik dalších příkladů deklarace polí v Javě:
String [] stringArray;
MyClass [] myClassArray;
Totéž platí pro ostatní programovací jazyky.
3) Výhody a nevýhody Array?
Výhody:
- Můžeme zavést další datové struktury, jako jsou zásobníky, fronty, propojené seznamy, stromy, grafy atd. v Array.
- Pole mohou třídit více prvků najednou.
- K prvku Array můžeme přistupovat pomocí indexu.
Nevýhody:
- Velikost pole musíme deklarovat předem. V době deklarace pole však nemusíme vědět, jakou velikost potřebujeme.
- Pole je statická struktura. To znamená, že velikost pole je vždy pevná, takže nemůžeme zvětšit nebo snížit alokaci paměti.
4) Můžeme změnit velikost pole za běhu?
Ne, nemůžeme změnit velikost pole. I když jsou k dispozici podobné datové typy, které umožňují změnu velikosti.

5) Můžete deklarovat pole bez přiřazení velikosti pole?
Ne, nemůžeme deklarovat pole bez přiřazení velikosti. Pokud deklarujeme pole bez velikosti, vyvolá to chybu při kompilaci. Příklad: značky = new int []; //CHYBA KOMPILÁTORU
6) Jaká je výchozí hodnota Array?
Jakékoli nové pole je vždy inicializováno s výchozí hodnotou následovně
- Pro byte, short, int, long – výchozí hodnota je nula (0).
- Pro float, double – výchozí hodnota je 0.0.
- Pro Boolean – výchozí hodnota je false.
- Pro objekt – výchozí hodnota je null.
7) Jak vytisknout prvek pole?
Zde je kód pro tisk prvku pole.
int schoolmarks [] = {25, 30, 50, 10, 5 }; System.out.println (Arrays.toString (schoolmarks));
Výstup je: [25, 30, 50, 10, 5]
8) Jak porovnat dvě pole?
Pokud jsou 2 pole stejné velikosti a datového typu, lze srovnání provést pomocí „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) Jak třídit pole?
Je to možné pomocí vestavěné statické metody, která je Arrays. seřadit ().
Int Marks [] = {12, 5, 7, 9}; Arrays.sort(Marks); System.out.println(Arrays.toString(Marks));//[5, 7, 9, 12]
10) Můžeme velikost pole deklarovat jako záporné číslo?
Ne. Záporné celé číslo nemůžeme deklarovat jako velikost pole. Pokud ano, nedojde k chybě při kompilaci. Za běhu však dostaneme výjimku NegativeArraySizeException.
11) Kdy dostaneme ArrayStoreException?
Je to výjimka za běhu. Například do pole String Array můžeme uložit pouze prvky řetězce. Pokud se někdo pokusí vložit celočíselný prvek do tohoto pole String Array, dostaneme za běhu výjimku ArrayStoreException.
12) Můžeme přidat nebo odstranit prvek po přiřazení pole?
Ne to není možné.
13) Co znamená anonymní pole? Vysvětlit na příkladu?
Anonymní pole znamená pole bez jakéhokoli odkazu. Příklad:-
//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) Existuje nějaký rozdíl mezi int[] a a int a[]?
Žádný rozdíl mezi oběma právní prohlášení.
15) Existují 2 typy dat pole typu int. Jeden obsahuje 50 prvků a druhý obsahuje 30 prvků. Můžeme přiřadit pole 50 prvků poli 30 prvků?
Ano, můžeme přiřadit za předpokladu, že by měly být stejného typu. Kompilátor zkontroluje pouze typ pole, nikoli velikost.
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} – je to správný způsob, jak deklarovat pole v Javě?
Ne. Při poskytování prvků pole bychom neměli zmiňovat velikost pole.
17) Jak zkopírovat pole do jiného pole?
Níže jsou k dispozici čtyři triky v jazyce Java pro kopírování pole.
- Použití „Pro smyčku“
- Pomocí metody „Arrays.copyOf()“.
- Pomocí metody “System.arraycopy()”.
- Použití metody „clone()“.
18) Co jsou „zubatá“ pole v Javě?
Zubatá pole jsou pole obsahující pole různé délky. Zubatá pole jsou také známá jako vícerozměrná pole.
19) Když dojde k výjimce ArrayIndexOutOfBoundsException?
Jedná se o výjimku za běhu. Dojde k ní, když se program pokusí získat přístup k neplatnému indexu pole. Index je větší než velikost pole nebo je index záporný.
20) Můžete vysvětlit různé kroky deklarace vícerozměrných polí v Javě?
//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) Jak vyhledáváme konkrétní prvek v poli?
Můžeme použít metodu Arrays.binarySearch(). Tato metoda využívá binární vyhledávací algoritmus.
22) Co se stane, pokud pole neinicializujete?
Pole bude mít výchozí hodnotu.
23) Jak najdeme duplicitní prvky v poli?
Použití metody hrubé síly: V této metodě porovnáváme každý prvek pole s ostatními prvky. Pokud se zjistí, že dva prvky jsou stejné nebo stejné, deklarujeme je jako duplikáty. Níže naleznete kód pro stejný prvek.
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]); }}}} }
Výstup: Duplicitní prvek je: def1 Duplicitní prvek je: xyz1
24) Můžeme použít Generics s polem?
Ne, nemůžeme použít Generic s polem.
25) Jak iterovat pole v Javě?
1) Použití normální smyčky for
public 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) Použití rozšířené nové smyčky 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) Kde je v Javě alokována paměť pro pole?
V Javě je paměť pro pole vždy alokována na haldě, protože pole v Javě jsou objekty.
27) Můžete mi říct název třídy pole v Javě?
Pole je objekt. K získání názvu třídy můžeme použít metodu getClass().getName() na objektu.
28) „int a[] = new int[3]{1, 2, 3}“ – Toto je legální způsob definování polí?
Ne. Při poskytování prvků pole bychom neměli deklarovat velikost pole.
29) Co je to dvourozměrné pole?
Pole pole v Javě. Můžeme je prohlásit jako
int[][] p = new int[3][3]
což je matice 3×3.
30) Máme v Javě trojrozměrná pole?
Ano, Java podporuje N-rozměrná pole. Vícerozměrné pole v Javě není nic jiného než pole polí. Příklad: 2-rozměrné pole je pole 1-rozměrného pole.
31) Můžeme pole nastavit jako nestálé v Javě?
Ano, v Javě můžeme pole nastavit jako volatilní, ale uděláme pouze proměnnou, která ukazuje na pole volatilní.
32) Jaký bude výstup níže uvedeného kódu?
int myArr[] = new int [7]; System.out.print(myArr);
Odpověď: Výstupem bude odpadní hodnota. myArr je proměnná pole, myArr ukazuje na pole, pokud se jedná o celá čísla. Výpis myArr vypíše odpadní hodnotu. Není to totéž jako výpis myArr[0].
33) Jaký je krok pro přístup k prvkům pole v Javě?
Můžeme k němu přistupovat pomocí „indexu“. Index začíná od nuly (0), takže první prvek je uložen na pozici nula a poslední prvek bude Array.length – 1. Příklad:- Řetězec strArr[] = nový řetězec []{„A“, „B“, „C“, „D“, „E“}; strArr[0] znamená „A“ a strArr[2] znamená „C“.
34) Můžete mi říct rozdíly mezi Array a ArrayList?
Řada | ArrayList |
---|---|
Pole je statické s pevnou velikostí, kterou nelze po odložení změnit. | ArrayList není statický, ale dynamický. Jak se prvky přidávají do ArrayList, jejich kapacita nebo velikost automaticky roste. |
Obsahuje jak primitivní datové typy, tak objekty třídy. | ArrayList neobsahuje primitivní datové typy, ale obsahuje položky objektů. |
Pole nemá funkci Generics. | ArrayList má funkci generik. |
35) Víme, že pole jsou objekty, tak proč nemůžeme napsat strArray.length()?
Pole jsou odkazy na objekty jako třídy v Javě. Proti Array můžeme použít metody Object jako toString () a další hashCode (). Délka je datová položka pole, a není to tedy metoda. Proto používáme strArray.length.
36) Jak najít chybějící prvek v celočíselném poli 1 až 7?
Řešením tohoto problému je vypočítat součet všech čísel v poli a porovnat s očekávaným součtem, rozdíl by byl chybějící číslo.
int ar [] = new int[]{1,2,3,5,6,7};
- Získejte součet čísel
- celkem = n*(n+1)/2
- Odečtěte všechna čísla od součtu a
- získáte chybějící číslo.
- Podle níže uvedené logiky je součetOfNčísla 7*(7+1)/2=28
součetPrvků = 1+2+3+5+6+7=24 chybějící prvek je = 28 - 24=4
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) Jak najít duplikát v poli?
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) Jak zkontrolovat, zda pole obsahuje hodnotu nebo ne?
Zde je řetězec[] s hodnotami
public static final String[] myNames = new String[] {"B","A","K","C"};
Pokud myNames obsahuje danou hodnotu, vrátí hodnotu true, jinak false. Zde jsou dvě metody isExists() a contains(), obě metody vracejí hodnotu true, pokud je hodnota k dispozici, jinak false. První metoda Převádí pole na ArrayList. Poté otestuje, zda pole obsahuje nějakou hodnotu, a v opačném případě vrátí hodnotu true.
public static <T> boolean isExists(final T[] array, final T object) { return Arrays.asList(array).contains(object); }
Druhá metoda Tato metoda prochází polem a používá metodu equal() k prohledání prvku. Ve skutečnosti se tak provádí lineární prohledávání pole v Javě. Pokud pole obsahuje hodnotu, vrátí hodnotu 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) Jak získat největší a nejmenší číslo v poli?
Odpověď: Logika tohoto problému:
- K uložení největšího a nejmenšího čísla používáme dvě proměnné.
- Nejprve inicializujeme největší s Integer.MIN_VALUE a
- Dále inicializujeme nejmenší s Integer.MAX_VALUE.
- V každé iteraci cyklu for porovnáme současné číslo s největším a nejmenším číslem a provedeme aktualizaci
- Pokud je číslo větší než největší, nemůže být menší než nejmenší. To znamená, že není třeba kontrolovat, zda je první podmínka pravdivá,
- Použijeme blok kódu if-else, kde jinde se část provede pouze v případě, že první podmínka je nepravda, znamená nepravdivá.
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) Jak provést průnik dvou seřazených polí?
Ans: Logic: vytiskne prvek, pokud je prvek přítomen nebo dostupný v obou polích.
- Použijte dvě indexové proměnné i a j, poté počáteční hodnoty i = 0, j = 0
- Pokud je arr01 [i] menší než arr02 [j], zvyšte i.
- Pokud je arr01 [i] větší než arr02 [j], zvýší se j.
- Pokud jsou obě stejné, vytiskněte kteroukoli z nich a zvyšte i 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) Jak získat dvě horní čísla z pole?
Odpověď: Logika je:
- První proměnnou max01 přiřadíme Integer.MIN_VALUE
Navíc druhá proměnná max02 se stejným jako max01, to je Integer.MIN_VALUE.
- Toto pole iterujeme a porovnáme každé číslo s max01 a max02,
- Pokud je aktuální číslo větší než max1, přiřaďte max01 = číslo a max02 = max1.
- V opačném případě, pokud je pouze větší než max02, aktualizujeme max02 pouze aktuálním číslem.
- Na konci iterace, max01 a max02 ukazují na horní dvě čísla z daného pole.
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) Jak vyjmout nebo odstranit prvek z pole?
Odpověď: Logika je: Prvek můžeme odstranit nebo vyjmout pomocí Apache Commons ArrayUtils na základě indexu. ArrayUtils má několik přetížených metod 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) Jaká je logika obrácení pole?
Odpověď: Logika: vytiskněte prvek v opačném pořadí.
- Prohlásit
String Array String[] s = new String[]{"My","Leg","is","cut"};
- Iterujte to pomocí smyčky for a získejte všechny prvky v obráceném pořadí, což znamená, že od koncového bodu k počátečnímu bodu.
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) Jak najdete druhý největší prvek v poli celých čísel?
Odpověď: Logika je:
- Iterujte dané pole pomocí cyklu for.
- (první, pokud podmínka arr[i] > největší):
- Pokud je aktuální hodnota pole větší než největší hodnota, pak
- Přesuňte největší hodnotu na druhou největší a nastavte aktuální hodnotu jako největší
- (druhá, pokud podmínka arr[i] > druhá Největší )
- Pokud je aktuální hodnota menší než největší a
větší než druhá Největší, pak bude aktuální hodnota
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) Napište program, který sečte hodnoty daného pole.
Odpověď: Logika je:
- Deklarujte a přiřaďte proměnnou int, která je sum =0.
- Iterujte dané pole pomocí cyklu for.
- Přidejte všechny prvky pole a ponechte v této proměnné, která je součtem.
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) Jak oddělíte nuly od nenul v poli?
Odpověď: Logika je:
- Inicializace počítadla na 0
- Procházení inputArray zleva doprava
- Pokud je inputArray[i] nenulové
- Přiřazení inputArray[i] k inputArray[counter]
- Zvýšení počítadla o 1
- Přiřazení nuly zbývajícím prvkům
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) Napište program pro vložení prvku a na konkrétní pozici v poli?
Odpověď: Logika je:
- Vložte prvek na 3. pozici pole (index->2, hodnota->5)
- Iterujte dané pole v opačném pořadí pomocí cyklu for.
- Nyní vložte danou pozici a hodnotu za smyčku 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) Jak získat index prvku pole?
Odpověď: Logika je:
- V každém kroku kontroluje hodnotu vstupního klíče s hodnotou prostředního prvku pole.
- Pokud se klíče shodují, vrátí polohu. V jiném případě, pokud je klíč menší než klíč prostředního prvku,
- Poté bude opakovat smyčku while. Pokud se prohledalo zbývající pole a snížilo se na nulu, vrátí -1 znamená nenalezeno
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) Můžeme pole po inicializaci rozšířit?
Odpověď: Logika je: Pole po inicializaci můžeme rozšířit přidáním nového pole. Níže naleznete příklad.
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); } }
výstup je A,B,C,D,E.
50) Jak vyplnit prvek (inicializovat najednou) v poli?
Odpověď: Tento příklad krátce inicializuje všechny prvky pole pomocí metody Array.fill(název pole,hodnota) a metody Array.fill(název pole, počáteční index, koncový index, hodnota) třídy 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]);}}}
výstup je
100,100,100,100,100,100 100,100,100,50,50,50
A co předávání pole jako parametrů funkcím
Q14 rozdíl mezi a[] a []a
Po první deklaraci typu nelze vytvořit další (stejný datový typ) pole.
Ale můžete po deklaraci druhého typu, tzn.
Int []a, b, c= new int[velikost]