Topp 50 Array Intervju Frågor och Svar (2024)
1) Vad menar du med en Array?
- Array är en uppsättning av liknande datatyp.
- Matrisobjekt lagrar flera variabler med samma typ.
- Den kan hålla primitiva typer och objektreferenser.
- Matriser är alltid fasta
Gratis PDF-nedladdning: Array Intervju Frågor & Svar
2) Hur skapar man en array?
En Array deklareras på samma sätt som en variabel deklareras, men du måste lägga till [] efter typen. Exempelvis: int [] inArray; Vi kan deklarera Java-array som ett fält, statiskt fält, en lokal variabel eller parameter, som vilken annan variabel som helst. En array är en samling variabler av den typen. Här är några fler Java-array-deklarationsexempel:String [] stringArray;
MyClass [] myClassArray;Samma sak är fallet för andra programmeringsspråk.
3) Fördelar och nackdelar med Array?
fördelar:- Vi kan införa andra datastrukturer som stackar, köer, länkade listor, träd, grafer etc. i Array.
- Matriser kan sortera flera element samtidigt.
- Vi kan komma åt ett element i Array genom att använda ett index.
- Vi måste deklarera storleken på en array i förväg. Men vi kanske inte vet vilken storlek vi behöver vid tidpunkten för matrisdeklarationen.
- Arrayen är statisk struktur. Det betyder att arraystorleken alltid är fast, så vi kan inte öka eller minska minnesallokeringen.
4) Kan vi ändra storleken på en array under körning?
Nej, vi kan inte ändra arraystorleken. Även om det finns liknande datatyper tillgängliga som tillåter en förändring i storlek.5) Kan du deklarera en array utan att tilldela storleken på en array?
Nej, vi kan inte deklarera en array utan att tilldela storlek. Om vi deklarerar en array utan storlek kommer den att ge ett kompileringstidsfel Exempelvis: marks = new int []; //KOMPILATORFEL6) Vilket är standardvärdet för Array?
Varje ny Array initieras alltid med ett standardvärde enligt följande- För byte, kort, int, lång – standardvärdet är noll (0).
- För float, double – standardvärdet är 0.0.
- För Boolean – standardvärdet är falskt.
- För objekt – standardvärdet är null.
7) Hur skriver man ut element i Array?
Här är kod för att skriva ut elementet i arrayen.int schoolmarks [] = {25, 30, 50, 10, 5 }; System.out.println (Arrays.toString (schoolmarks));Utgången är: [25, 30, 50, 10, 5]
8) Hur jämför man Two Arrays?
Om 2 arrayer är av samma storlek och datatyp kan jämförelsen göras med "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) Hur sorterar man en Array?
Det är möjligt att använda den inbyggda statiska metoden som är Arrays. sortera ().Int Marks [] = {12, 5, 7, 9}; Arrays.sort(Marks); System.out.println(Arrays.toString(Marks));//[5, 7, 9, 12]
10) Kan vi deklarera arraystorlek som ett negativt tal?
Nej. Vi kan inte deklarera det negativa heltal som en matrisstorlek. Om vi deklarerar kommer det inte att uppstå något kompileringsfel. Men vi kommer att få NegativeArraySizeException vid körning.11) När får vi ArrayStoreException?
Det är ett körtidsundantag. Till exempel kan vi endast lagra strängelement i en String Array. Om någon försöker infoga heltalselement i denna String Array, kommer vi att få ArrayStoreException vid körning.12) Kan vi lägga till eller ta bort ett element efter att ha tilldelat en array?
Nej det är inte möjligt.13) Vad är meningen med anonym array? Förklara med ett exempel?
Anonym array betyder array utan någon referens. Exempel:-//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) Finns det någon skillnad mellan int[] a och int a[]?
Ingen skillnad båda är laglig uttalande.15) Det finns 2 int-typ matrisdatatyper. En innehåller 50 element och en annan innehåller 30 element. Kan vi tilldela matrisen med 50 element till en matris med 30 element?
Ja, vi kan tilldela förutsatt att de är av samma typ. Kompilatorn kontrollerar den enda typen av arrayen, inte storleken.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} – är det ett rätt sätt att deklarera arrayer i java?
Nej. Vi bör inte nämna storleken på arrayen när vi tillhandahåller arrayelementen.17) Hur kopierar man en array till en annan array?
Nedan fyra knep finns tillgängliga i java för att kopiera en array.- Använda "För loop"
- Använder metoden "Arrays.copyOf()".
- Använder metoden "System.arraycopy()".
- Använder metoden "clone()".
18) Vad är "jagged" arrays i java?
Jagged Arrays är Arrayer som innehåller arrayer av olika längd. Jagged arrays är också kända som flerdimensionella arrays.19) När ArrayIndexOutOfBoundsException inträffar?
Det är ett undantag för körtid. Det inträffar när programmet försöker komma åt ogiltigt index för en array. Index högre än storleken på arrayen eller negativt index.20) Kan du förklara olika steg för att deklarera flerdimensionella arrayer i 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) Hur söker vi efter ett specifikt element i en array?
Vi kan använda Arrays.binarySearch()-metoden. Denna metod använder binär sökalgoritm.22) Vad händer om du inte initierar en array?
Array kommer att ha standardvärde.23) Hur hittar vi dubbletter av element i en array?
Använder Brute Force-metoden: I den här metoden jämför vi varje element i en array med andra element. Om två element hittas lika eller lika, deklarerar vi dem som dubbletter. Vänligen hitta nedanstående kod för detsammapublic 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]); }}}} }Utdata: Duplicate Element är: def1 Duplicate Element är: xyz1
24) Kan vi använda Generics med arrayen?
Nej, vi kan inte använda Generic med en array.25) Hur itererar man en array i java?
1) Använd normal för looppublic 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) Använd utökad ny för loop
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) Var är minnet tilldelat för arrayer i Java?
I Java tilldelas alltid minne för arrayer på högen eftersom arrayer i Java är objekt.27) Kan du berätta för mig klassnamnet på en array i Java?
Array är ett objekt. För att återställa klassnamnet kan vi använda metoden getClass().getName() på objektet.28) “int a[] = new int[3]{1, 2, 3}” – Detta är ett lagligt sätt att definiera arrayerna?
Nej. Vi bör inte deklarera storleken på arrayen när vi tillhandahåller arrayelementen.29) Vad är den tvådimensionella arrayen?
En array av en array i Java. Vi kan förklara dem somint[][] p = new int[3][3]vilket är en matris på 3×3.
30) Har vi 3-dimensionella arrayer i Java?
Ja, Java stöder N-dimensionell array. Flerdimensionell array i Java är inget annat än en array av array, Exempel: 2-dimensionell array är en array av 1-dimensionell array.31) Kan vi göra array flyktig i Java?
Ja, vi kan göra en array flyktig i Java, men vi gör bara variabeln som pekar på array volatil.32) Vad blir resultatet av nedanstående kod?
int myArr[] = new int [7]; System.out.print(myArr);Svar: Utdata kommer att vara skräpvärde. myArr är en arrayvariabel, myArr pekar på en array om den är heltal. Att skriva ut myArr kommer att skriva ut skräpvärde. Det är inte samma sak som att skriva ut myArr[0].
33) Vad är steget för att komma åt element i en array i Java?
Vi kan komma åt med "index". Index börjar från Zero(0), så det första elementet lagras på plats noll och det sista elementet kommer att vara Array.length – 1. Exempel:- String strArr[] = ny String []{"A", "B", "C", "D", "E"}; strArr[0] betyder "A" och strArr[2] betyder "C".34) Kan du berätta för mig skillnaderna mellan Array och ArrayList?
array | Arraylist |
Arrayen är statisk med en fast storlek som inte kan ändras en gång delad. | ArrayList är inte statisk utan dynamisk i storlek. När element läggs till i en ArrayList, växer dess kapacitet eller storlek automatiskt. |
Den innehåller både primitiva datatyper och objekt i en klass. | ArrayList innehåller inte de primitiva datatyperna men innehåller objektposter. |
Array har ingen generisk funktion. | ArayList har generiska funktioner. |
35) Vi vet att Arrays är objekt så varför kan vi inte skriva strArray.length()?
Arrayer är objektreferenser som klasser i Java. Vi kan använda metoderna för Object som toString () och en annan hashCode () mot Array. Längd är ett dataobjekt i en array och är därför inte en metod. Det är därför vi använder strArray.length.36) Hur hittar man det saknade elementet i heltalsmatrisen 1 till 7?
Lösningar för att lösa detta problem är att beräkna summan av alla tal i matrisen och jämföra med en förväntad summa, skillnaden skulle vara det saknade talet.int ar [] = new int[]{1,2,3,5,6,7};
- Få summan av siffror
- totalt = n*(n+1)/2
- Subtrahera alla siffror från summa och
- du kommer att få det saknade numret.
- Enligt nedanstående logik är summaOfNnumberss 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) Hur hittar man dubbletten i en array?
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) Hur kontrollerar man att array innehåller värde eller inte?
Här är en String[] med värdenpublic static final String[] myNames = new String[] {"B","A","K","C"};Om myNames innehåller det värdet kommer det att returnera true annars falskt. Här är två metoder isExists() och contains() båda metoderna returnerar true om värdet är tillgängligt annars false. Första metoden Det konverterar en array till ArrayList. Efter det kommer den att testa om en array innehåller något värde så returnerar den true annars falskt.
public static <T> boolean isExists(final T[] array, final T object) { return Arrays.asList(array).contains(object); }Andra metoden Denna metod går igenom en array och använder metoden equal() för att söka i element. Detta utför faktiskt en linjär sökning över en array i Java. Det kommer att returnera sant om en array har tillhandahållit värde.
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) Hur får man det största och minsta antalet i en array?
Svar: Logiken i detta problem:- Vi använder två variabler för att lagra största och minsta antal.
- Först initierar vi störst med Integer.MIN_VALUE och
- Därefter initierar vi minsta med Integer.MAX_VALUE.
- I varje iteration av for-slingan kommer vi att jämföra nuvarande antal med största och minsta antal, och vi kommer att uppdatera
- Om ett tal är större än störst, kan det inte vara mindre än det minsta. Det betyder att du inte behöver kontrollera om det första villkoret är sant,
- Vi kommer att använda if-else-kodblocket, där else-delen endast kommer att köras om det första villkoret är falskt betyder inte sant.
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) Hur gör man skärningen av två sorterade arrayer?
Svar: Logik: skriv ut elementet om elementet finns eller är tillgängligt i båda arrayerna.- Använd två indexvariabler i och j, efter det initiala värdena i = 0, j = 0
- Om arr01 [i] är mindre än arr02 [j] så öka i.
- Om arr01 [i] är större än arr02 [j] ökas j.
- Om båda är lika skriv ut någon av dem och öka både i och 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) Hur får man de två översta numren från en array?
Svar: Logiken är:- Vi kommer att tilldela den första variabeln max01 med Integer.MIN_VALUE
- Vi kommer att iterera denna array och jämföra varje nummer med max01 och max02,
- Om nuvarande nummer är större än max1, tilldela max01 = antal och max02 = max1.
- Annars om det bara är större än max02 kommer vi bara att uppdatera max02 med det aktuella numret.
- I slutet av en iteration pekar max01 och max02 på topp två nummer från en given matris.
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) Hur skär eller tar man bort ett element från arrayen?
Svar: Logiken är: Vi kan ta bort eller klippa ett element med Apache Commons ArrayUtils baserat på ett index. ArrayUtils har flera överbelastade remove()-metoder.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) Vad är logiken för att vända arrayen?
Svar: Logik: skriv ut elementet i omvänd ordning.- Förklara a
String Array String[] s = new String[]{"My","Leg","is","cut"};
- Iterera det med för loop få alla element i omvänd ordning betyder slutpunkt till startpunkt.
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) Hur hittar du det näst största elementet i en matris med heltal?
Svar: Logiken är:- Iterera den givna arrayen med för loop.
- (först om villkor arr[i] > störst):
- Om det aktuella arrayvärdet är större än det största värdet då
- Flytta det största värdet till det näst största och gör det aktuella värdet till det största
- (andra om villkoret arr[i] > secondLargest )
- Om det aktuella värdet är mindre än störst och
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) Skriv ett program för att summera värden för en given matris.
Svar: Logiken är:- Deklarera och tilldela int-variabel som är summa =0.
- Iterera den givna arrayen med för loop.
- Lägg till alla arrayelement och håll i denna variabel som är summan.
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) Hur skiljer man nollor från icke-nollor i en array?
Svar: Logiken är:- Initialisera räknaren till 0
- Traverserar inputArray från vänster till höger
- Om inputArray[i] inte är noll
- Tilldela inputArray[i] till inputArray[counter]
- Öka räknaren med 1
- Tilldela noll till återstående element
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) Skriv ett program för att infoga ett element och i den specifika positionen i arrayen?
Svar: Logiken är:- Infoga ett element i 3:e positionen i arrayen (index->2, värde->5)
- Iterera den givna arrayen i omvänd ordning med för loop.
- Infoga nu given position och värde efter för loop.
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) Hur får man fram indexet för ett matriselement?
Svar: Logiken är:- I varje steg kontrollerar den inmatningsnyckelvärdet med värdet för mittelementet i en array.
- Om nycklarna matchar kommer den att återställa positionen. I ett annat fall, om nyckeln är mindre än mittelementets nyckel,
- Sedan kommer den att upprepa while-slingan. Om den återstående arrayen sökte och den reducerades till noll kommer den att returnera -1 betyder inte hittad
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 Kan vi utöka en array efter initialisering?
Svar: Logik är: Vi kan utöka en array efter initialisering genom att lägga till en ny array. Se exemplet nedan.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); } }utgången är A,B,C,D,E.
50) Hur fyller man element (initierar på en gång) i en array?
Svar: Det här exemplet fyller (initiera alla element i arrayen i ett kort) en array genom att använda metoden Array.fill(arraynamn,värde) och Array.fill(arraynamn, startindex, slutindex, värde) metoden för Java Util-klass.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]);}}}output är
100,100,100,100,100,100 100,100,100,50,50,50
Vad sägs om att skicka array som parametrar till funktioner
Q14 skillnad mellan a[] och []a
Efter den första typdeklarationen kan du inte skapa en annan (samma datatyp) array.
Men du kan efter andra typdeklaration dvs.
Int []a, b, c= ny int[storlek]