Top 50 de întrebări și răspunsuri la interviu Array (2025)
Iată întrebările și răspunsurile la interviu Array pentru cei în curs de dezvoltare, precum și pentru candidații cu experiență pentru a obține jobul visat. Matricele sunt o parte integrantă a programării, iar diverse limbaje de codare precum C, C++, Python, Java și Perl folosesc matrice.
1) Ce înțelegeți prin Array?
- Array este un set de tip de date similar.
- Obiectele matrice stochează mai multe variabile cu același tip.
- Poate deține tipuri primitive și referințe la obiecte.
- Matricele sunt întotdeauna fixe
Descărcare gratuită PDF: Interviu Array Întrebări și răspunsuri
2) Cum se creează un Array?
Un Array este declarat similar cu modul în care este declarată o variabilă, dar trebuie să adăugați [] după tip. Exemplu: int [] intArray; Putem declara un array Java ca și câmp, câmp static, variabilă locală sau parametru, ca orice altă variabilă. Un array este o colecție de variabile de acel tip. Iată câteva exemple suplimentare de declarare a unui array Java:
String [] stringArray;
MyClass [] myClassArray;
Același lucru este și cazul altor limbaje de programare.
3) Avantajele și dezavantajele Array?
avantaje:
- Putem pune în aplicare alte structuri de date, cum ar fi stive, cozi, liste legate, arbori, grafice etc. în Array.
- Matricele pot sorta mai multe elemente simultan.
- Putem accesa un element din Array folosind un index.
Dezavantaje:
- Trebuie să declarăm dimensiunea unui tablou în avans. Cu toate acestea, este posibil să nu știm de ce dimensiune avem nevoie în momentul declarării matricei.
- Matricea este o structură statică. Înseamnă că dimensiunea matricei este întotdeauna fixă, așa că nu putem crește sau reduce alocarea memoriei.
4) Putem schimba dimensiunea unei matrice în timpul rulării?
Nu, nu putem schimba dimensiunea matricei. Deși există tipuri de date similare disponibile, care permit o modificare a dimensiunii.
5) Puteți declara o matrice fără a atribui dimensiunea unei matrice?
Nu, nu putem declara un array fără a-i atribui o dimensiune. Dacă declarăm un array fără dimensiune, va genera o eroare la compilare. Exemplu: semne = new int []; //EROARE COMPILATOR
6) Care este valoarea implicită a Array?
Orice nou Array este întotdeauna inițializat cu o valoare implicită, după cum urmează
- Pentru octet, short, int, long – valoarea implicită este zero (0).
- Pentru float, dublu – valoarea implicită este 0.0.
- Pentru Boolean – valoarea implicită este false.
- Pentru obiect – valoarea implicită este nulă.
7) Cum se imprimă elementul Array?
Aici este codul pentru a imprima elementul matricei.
int schoolmarks [] = {25, 30, 50, 10, 5 }; System.out.println (Arrays.toString (schoolmarks));
Ieșirea este: [25, 30, 50, 10, 5]
8) Cum se compară două matrice?
Dacă 2 matrice sunt de aceeași dimensiune și tip de date, atunci compararea se poate face folosind „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) Cum se sortează o matrice?
Este posibil să utilizați metoda statică construită, care este Arrays. sortare ().
Int Marks [] = {12, 5, 7, 9}; Arrays.sort(Marks); System.out.println(Arrays.toString(Marks));//[5, 7, 9, 12]
10) Putem declara dimensiunea matricei ca număr negativ?
Nu. Nu putem declara un număr întreg negativ ca dimensiune a unui tablou. Dacă îl declarăm, nu va exista nicio eroare la compilare. Cu toate acestea, vom obține o excepție NegativeArraySizeException la momentul execuției.
11) Când vom primi ArrayStoreException?
Este o excepție de rulare. De exemplu, putem stoca doar elemente șir într-un String Array. Dacă cineva încearcă să insereze un element întreg în acest String Array, atunci vom obține ArrayStoreException în timpul rulării.
12) Putem adăuga sau șterge un element după alocarea unui tablou?
Nu, nu este posibil.
13) Care este sensul matricei anonime? Explica cu un exemplu?
Matrice anonimă înseamnă matrice fără nicio referință. Exemplu:-
//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) Există vreo diferență între int[] a și int a[]?
Nicio diferență sunt ambele legal afirmație.
15) Există 2 tipuri de date int tip matrice. Unul conține 50 de elemente, iar altul conține 30 de elemente. Putem atribui o matrice de 50 de elemente unei matrice de 30 de elemente?
Da, putem aloca, cu condiția să fie de același tip. Compilatorul va verifica singurul tip al matricei, nu dimensiunea.
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} – este o modalitate corectă de a declara matrice în java?
Nu. Nu ar trebui să menționăm dimensiunea matricei atunci când furnizăm elementele matricei.
17) Cum se copiază o matrice într-o altă matrice?
Mai jos sunt disponibile patru trucuri în Java pentru a copia o matrice.
- Folosind „For bucla”
- Folosind metoda „Arrays.copyOf()”.
- Folosind metoda „System.arraycopy()”.
- Folosind metoda „clone()”.
18) Ce sunt matricele „jagged” în java?
Jagged Arrays sunt Matricele care conțin matrice de lungimi diferite. Matricele zimțate sunt cunoscute și sub numele de matrice multidimensionale.
19) Când apare ArrayIndexOutOfBoundsException?
Este o excepție la momentul execuției. Se va produce atunci când programul încearcă să acceseze un index nevalid al unui array. Indexul este mai mare decât dimensiunea array-ului sau indexul este negativ.
20) Puteți explica diferiți pași de declarare a tablourilor multidimensionale în 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) Cum căutăm un anumit element dintr-o matrice?
Putem folosi metoda Arrays.binarySearch(). Această metodă folosește algoritmul de căutare binar.
22) Dacă nu inițializați o matrice, ce se va întâmpla?
Array va avea valoarea implicită.
23) Cum găsim elemente duplicate într-o matrice?
Folosind metoda forței brute: În această metodă, comparăm fiecare element al unui tablou cu alte elemente. Dacă două elemente sunt egale sau identice, le declarăm ca duplicate. Mai jos găsiți codul pentru același lucru.
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]); }}}} }
Ieșire: Elementul duplicat este: def1 Elementul duplicat este: xyz1
24) Putem folosi Generics cu matricea?
Nu, nu putem folosi Generic cu o matrice.
25) Cum se repetă o matrice în java?
1) Folosind bucla normală pentru
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) Utilizarea extins new for bucla
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) Unde este alocată memoria pentru matrice în Java?
În Java, memoria pentru matrice este întotdeauna alocată pe heap, deoarece tablourile în Java sunt obiecte.
27) Îmi puteți spune numele clasei unui tablou în Java?
Array este un obiect. Pentru a retrage numele clasei putem folosi metoda getClass().getName() pe obiect.
28) „int a[] = new int[3]{1, 2, 3}” – Acesta este un mod legal de a defini matricele?
Nu. Nu ar trebui să declarăm dimensiunea matricei atunci când furnizăm elementele matricei.
29) Ce este matricea bidimensională?
O matrice a unei matrice în Java. Le putem declara ca
int[][] p = new int[3][3]
care este o matrice de 3×3.
30) Avem tablouri tridimensionale în Java?
Da, Java acceptă tablouri N-dimensionale. Un tablou multidimensional în Java nu este altceva decât un tablou de tablouri. Exemplu: un tablou bidimensional este un tablou de tablouri unidimensionale.
31) Putem face matricea volatilă în Java?
Da, putem face o matrice volatilă în Java, dar facem volatilă doar variabila care indică o matrice.
32) Care va fi rezultatul codului de mai jos?
int myArr[] = new int [7]; System.out.print(myArr);
Răspuns: Rezultatul va fi o valoare nedorită. myArr este o variabilă de tip matrice, iar myArr indică o matrice dacă aceasta este formată din numere întregi. Afișarea funcției myArr va afișa o valoare nedorită. Nu este același lucru cu afișarea funcției myArr[0].
33) Care este pasul pentru a accesa elementele unui tablou în Java?
Putem accesa folosind „index”. Indexul începe de la Zero(0), deci primul element este stocat în locația zero, iar ultimul element va fi Array.length – 1. Exemplu:- Șir de caractere strArr[] = new String []{„A”, „B”, „C”, „D”, „E”}; strArr[0] înseamnă „A” și strArr[2] înseamnă „C”.
34) Îmi puteți spune diferențele dintre Array și ArrayList?
Mulțime | ArrayList |
---|---|
Matricea este statică cu o dimensiune fixă care nu poate fi schimbată odată eliminată. | ArrayList nu este static, ci dinamic în dimensiune. Pe măsură ce elementele adăugate la o ArrayList, capacitatea sau dimensiunea acestuia crește automat. |
Conține atât tipuri de date primitive, cât și obiecte ale unei clase. | ArrayList nu conține tipurile de date primitive, dar conține intrări de obiect. |
Array nu are caracteristica Generics. | ArrayList are funcția Generics. |
35) Știm că tablourile sunt obiecte, așa că de ce nu putem scrie strArray.length()?
Matricele sunt referințe la obiecte precum clasele în Java. Putem folosi metodele Object precum toString () și încă unul hashCode () împotriva Array. Lungimea este un element de date al unui tablou și deci nu este o metodă. De aceea folosim strArray.length.
36) Cum să găsiți elementul lipsă în matricea întregi de la 1 la 7?
Soluțiile pentru a rezolva această problemă este de a calcula suma tuturor numerelor din matrice și de a compara cu o sumă așteptată, diferența ar fi numărul lipsă.
int ar [] = new int[]{1,2,3,5,6,7};
- Obțineți suma numerelor
- total = n*(n+1)/2
- Scădeți toate numerele din suma și
- vei primi numărul lipsă.
- Conform logicii de mai jos, sumOfNnumberss este 7*(7+1)/2=28
sumaElementelor = 1+2+3+5+6+7=24 elementul lipsă este = 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) Cum să găsiți duplicatul într-o matrice?
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) Cum se verifică ca matricea conține valoare sau nu?
Aici este un String[] cu valori
public static final String[] myNames = new String[] {"B","A","K","C"};
Dacă myNames conține acea valoare, atunci va returna „true” dacă valoarea este disponibilă, altfel „false”. Iată două metode: isExists() și contains(), ambele metode returnează „true” dacă valoarea este disponibilă, altfel „false”. Prima metodă Convertește un array într-un ArrayList. După aceea, va testa dacă un array conține vreo valoare, apoi va returna true, altfel false.
public static <T> boolean isExists(final T[] array, final T object) { return Arrays.asList(array).contains(object); }
A doua metodă Această metodă parcurge un array și folosește metoda equal() pentru a căuta un element. De fapt, efectuează o căutare liniară într-un array în Java. Va returna true dacă array-ul a furnizat o valoare.
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) Cum să obțineți cel mai mare și cel mai mic număr dintr-o matrice?
Răspuns: Logica acestei probleme:
- Folosim două variabile pentru a stoca numărul cel mai mare și cel mai mic.
- Mai întâi, inițializam cea mai mare cu Integer.MIN_VALUE și
- Apoi, inițializam cel mai mic cu Integer.MAX_VALUE.
- În fiecare iterație a buclei for, vom compara numărul prezent cu cel mai mare și cel mai mic număr și vom actualiza
- Dacă un număr este mai mare decât cel mai mare, atunci nu poate fi mai mic decât cel mai mic. Asta înseamnă că nu este nevoie să verificați dacă prima condiție este adevărată,
- Vom folosi blocul de cod if-else, unde else part se va executa numai dacă prima condiție este falsă înseamnă că nu este adevărată.
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) Cum se face intersecția a două matrice sortate?
Răspuns: Logic: imprimați elementul dacă elementul este prezent sau disponibil în ambele matrice.
- Folosiți două variabile de index i și j, după care inițializați valorile i = 0, j = 0
- Dacă arr01 [i] este mai mic decât arr02 [j] atunci incrementați i.
- Dacă arr01 [i] este mai mare decât arr02 [j] atunci incrementați j.
- Dacă ambele sunt aceleași, imprimați oricare dintre ele și creșteți atât i, cât ș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) Cum să obțineți primele două numere dintr-o matrice?
Răspuns: Logica este:
- Vom atribui prima variabilă max01 cu Integer.MIN_VALUE
Mai mult, a doua variabilă max02 cu aceeași cu max01, adică Integer.MIN_VALUE.
- Vom repeta această matrice și vom compara fiecare număr cu max01 și max02,
- Dacă numărul curent este mai mare decât max1, atunci atribuiți max01 = număr și max02 = max1.
- În caz contrar, dacă este doar mai mare decât max02, vom actualiza doar max02 cu numărul curent.
- La sfârșitul unei iterații, max01 și max02 indică primele două numere din matricea dată.
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) Cum să tăiați sau să eliminați un element din matrice?
Răspuns: Logica este următoarea: Putem elimina sau tăia un element folosind Apache Commons ArrayUtils pe baza unui index. ArrayUtils are mai multe metode remove() supraîncărcate.
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) Care este logica pentru a inversa matricea?
Răspuns: Logic: imprimați elementul în ordine inversă.
- Declara a
String Array String[] s = new String[]{"My","Leg","is","cut"};
- Repetați-l folosind bucla pentru obțineți toate elementele în ordine inversă înseamnă punctul final la punctul de pornire.
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) Cum găsești al doilea element ca mărime dintr-o matrice de numere întregi?
Răspuns: Logica este:
- Repetați matricea dată folosind bucla for.
- (mai întâi dacă condiția arr[i] > cea mai mare):
- Dacă valoarea actuală a matricei este mai mare decât cea mai mare valoare, atunci
- Mutați cea mai mare valoare la secondLargest și faceți valoarea actuală ca cea mai mare
- (a doua dacă condiția arr[i] > secondLargest )
- Dacă valoarea curentă este mai mică decât cea mai mare și
mai mare decât secondLargest atunci valoarea curentă devine
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) Scrieți un program care să însumeze valorile unui tablou dat.
Răspuns: Logica este:
- Declarați și atribuiți variabile int care este sum =0.
- Repetați matricea dată folosind bucla for.
- Adăugați tot elementul de matrice și păstrați în această variabilă care este suma.
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) Cum separă zerourile de non-zero într-o matrice?
Răspuns: Logica este:
- Inițializarea contorului la 0
- Parcurgerea inputArray de la stânga la dreapta
- Dacă inputArray[i] este diferit de zero
- Atribuirea inputArray[i] la inputArray[counter]
- Creșterea contorului cu 1
- Atribuirea zero la elementele rămase
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) Scrieți un program pentru a insera un element și în poziția specifică din tablou?
Răspuns: Logica este:
- Inserați un element în a treia poziție a matricei (index->3, value->2)
- Repetați matricea dată în ordine inversă folosind bucla for.
- Acum introduceți poziția și valoarea dată după bucla 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) Cum să obțineți indexul unui element de matrice?
Răspuns: Logica este:
- În fiecare pas, verifică valoarea cheii de intrare cu valoarea elementului din mijloc al unui tablou.
- Dacă cheile se potrivesc, va reveni la poziția. În alt caz, dacă cheia este mai mică decât cheia elementului din mijloc,
- Apoi va repeta bucla while. Dacă matricea rămasă a căutat și s-a redus la zero, va returna -1 înseamnă negăsit
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) Putem extinde un tablou după inițializare?
Răspuns: Logica este următoarea: Putem extinde un array după inițializare prin adăugarea unui nou array. Mai jos găsiți un exemplu.
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); } }
ieșirea este A,B,C,D,E.
50) Cum să umpleți elementul (inițializați imediat) într-o matrice?
Răspuns: Acest exemplu umple (inițializează toate elementele tabloului într-o singură scurtă) un tablou folosind metoda Array.fill(array name,value) și metoda Array.fill(array name, starting index, ending index, value) a clasei 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]);}}}
ieșirea este
100,100,100,100,100,100 100,100,100,50,50,50
Ce zici de transmiterea matricei ca parametri la funcții
Q14 diferența dintre a[] și []a
După prima declarație de tip nu puteți crea un alt tablou (același tip de date).
Dar puteți după declarația de al doilea tip, adică.
Int []a, b, c= nou int[dimensiune]