80 Java Întrebări și răspunsuri la interviu pentru colecții (2025)
Java Colecții Interviu Întrebări și Răspunsuri pentru Freshers
1) În ce este cadrul Java?
Un cadru este o arhitectură populară și gata făcută care conține un set de clase și interfețe.
2) În ce este cadrul de colectare Java?
Collection Framework este o grupare de clase și interfețe care este folosită pentru a stoca și gestiona obiectele. Oferă diverse clase precum Vector, ArrayList, HashSet, Stack etc. Java Cadrul de colectare poate fi folosit și pentru interfețe precum Queue, Set, List etc.
3) Explicați Clasa Colecțiilor
java.util.Collections este o clasă formată din metode statice care operează pe colecții. Conține algoritmi polimorfi pentru a opera colecții, „învelișuri”. Această clasă conține metode pentru algoritmi, cum ar fi sortarea binară, căutarea, amestecarea etc.
4) Ce este hashCode()?
HashCode() este o metodă care returnează un cod hash întreg.
5) Distingeți între ArrayList și Vector în Java cadru de colectare.
ArrayList | Vector |
---|---|
ArrayList nu poate fi sincronizat. | Vectorul poate fi este sincronizat. |
Nu este o clasă moștenită. | Este o clasă moștenită. |
Își poate crește dimensiunea cu 50% din dimensiunea matricei. | Își poate crește dimensiunea dublând dimensiunea matricei. |
ArrayList nu este sigură pentru fire. | Vector este sigur pentru fire. |
6) În ce este ArrayList Java?
ArrayList este o structură de date care poate fi extinsă pentru a găzdui elemente suplimentare în interiorul ei și se micșorează la o dimensiune mai mică atunci când elementele sunt îndepărtate. Este o structură de date foarte importantă, utilă în gestionarea comportamentului dinamic al elementelor.
7) Faceți diferența între Iterator și ListIterator
Diferența dintre Iterator și ListIterator este:
iteratoare | ListIterator |
---|---|
Iteratorul poate traversa elementele matricei în direcția înainte. | ListIterator poate traversa elementele matricei în direcții înapoi, precum și înainte. |
Poate fi folosit în coadă, listă și set. | Poate fi folosit în Listă. |
Poate efectua doar operația de eliminare. | Poate efectua operații de adăugare, eliminare și setare în timp ce parcurge colecția. |
8) Care este diferența dintre Iterator și Enumerare?
Diferența dintre Iterator și Enumerare
iteratoare | Enumerare |
---|---|
Iteratorul poate traversa atât elementele moștenite, cât și elementele nelegate. | Enumerarea poate traversa doar elementele moștenite. |
Iteratorul este rapid. | Enumerarea nu este rapidă. |
Iteratorul este foarte lent în comparație cu enumerarea. | Enumerarea este rapidă în comparație cu Iterator. |
Iteratorul poate efectua operația de eliminare în timp ce parcurge colecția. | Enumerarea poate efectua numai operații de traversare pe colecție. |
9) Definiți BlockingQueue
BlockingQueue este o interfață folosită în Java care poate extinde coada. Oferă concurență în diverse operațiuni de coadă, cum ar fi extragerea, inserarea, ștergerea etc.
Coada așteaptă să devină negoală în momentul preluării oricăror elemente. BlockingQueue nu trebuie să conțină elemente nule. Implementarea acestei cozi este sigură pentru fire.
Sintaxa BlockingQueue este:
public interface BlockingQueue<E> extends Queue <E>
10) Explicați metoda override equals().
Metoda egal este folosită pentru a verifica asemănarea dintre două obiecte. În cazul în care programatorul dorește să verifice un obiect pe baza proprietății, atunci acesta trebuie să fie suprascris.
11) Care este diferența dintre Comparabil și Comparator?
Diferența dintre comparabil și comparator este:
Comparabil | Comparator |
---|---|
Comparabil oferă metoda compareTo() pentru sortarea elementelor Java. | Comparatorul oferă metoda compare() pentru sortarea elementelor Java. |
Interfața comparabilă este prezentă în pachetul java.lang. | Interfața de comparație este prezentă în java. pachet util. |
Logica sortării trebuie să fie în aceeași clasă al cărei obiect urmează să-l sortați. | Logica sortării ar trebui să fie într-o clasă separată pentru a scrie diferite sortări bazate pe diferite atribute ale obiectelor. |
Clasa ale cărei obiecte doriți să le sortați trebuie să implementeze interfața comparabilă. | Clasa, ale cărei obiecte doriți să le sortați, nu trebuie să implementeze o interfață de comparație. |
Oferă secvențe de sortare unice. | Oferă mai multe secvențe de sortare. |
Această metodă poate sorta datele după ordinea naturală de sortare. | Această metodă sortează datele în funcție de ordinea de sortare personalizată. |
Afectează clasa inițială. adică, clasa reală este modificată. | Nu afectează clasa originală, adică clasa reală nu este modificată. |
Implementat frecvent în API prin Calendar, clase Wrapper, Date și String. | Este implementat pentru a sorta instanțe ale claselor terțe. |
Toate clasele wrapper și clasa String implementează interfața comparabilă. | Singurele clase implementate de Comparator sunt Collator și RuleBasedColator. |
12) Explicați equals() cu un exemplu
Equals() verifică dacă obiectul număr este egal cu obiectul, care este transmis ca argument sau nu.
Sintaxa metodei equals() este:
public boolean equals(Object o)
Această metodă ia doi parametri 1) orice obiect, 2) valoarea returnată. Returnează adevărat dacă argumentul transmis nu este nul și este un obiect de tip similar având aceeași valoare numerică.
Exemplu:
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) Enumerați beneficiile colectării generice
Beneficiile utilizării colecției generice sunt:
- Dacă programatorii folosesc clasa generică, nu necesită tipărire.
- Este sigur de tip și poate fi verificat în momentul compilării.
- Oferă stabilitatea codului prin detectarea erorilor la momentul compilării.
14) Explicați metoda de a converti ArrayList în Array și Array în ArrayList
Programatorii pot converti un Array în ArrayList folosind metoda asList() din clasa Arrays. Este o metodă statică a clasei Arrays care acceptă obiectul List. Sintaxa metodei asList() este:
Arrays.asList(item)
Java programatorii pot converti ArrayList în obiectul List folosind sintaxa:
List_object.toArray(new String[List_object.size()])
15) Dați un exemplu de ArrayList
Exemplul de reverse ArrayList este:
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) Dați exemplu pentru a sorta o matrice în ordine descrescătoare
Exemplul de sortare a unei matrice în ordine descrescătoare este:
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) Explicați interfețele de bază ale Java cadrul colecțiilor
Java cadrul de colecție este o rădăcină a ierarhiei de colecție. Reprezintă un grup de obiecte ca elemente ale sale. The Java limbajul de programare nu oferă o implementare directă a unei astfel de interfețe.
- Set: Setul este o colecție care nu are elemente duplicat. Folosește hashtable pentru stocarea elementelor.
- Listă: Listă este o colecție ordonată care poate conține elemente duplicat. Le permite dezvoltatorilor să acceseze orice elemente din căsuța de e-mail. Lista este ca o matrice cu o lungime dinamică.
- HARTĂ: Este un obiect care mapează cheile la valori. Nu poate conține chei duplicate. Fiecare cheie poate fi mapată la cel puțin o valoare.
18) Care sunt caracteristicile Java Hashmap?
Caracteristicile Java Hashmap sunt:
- Valorile pot fi stocate într-o hartă formând o pereche cheie-valoare. Valoarea poate fi preluată folosind cheia trecând-o la metoda corectă.
- Dacă nu există niciun element în Hartă, va arunca o „NoSuchElementException”.
- HashMap stochează doar referințe la obiecte. De aceea este imposibil să folosiți tipuri de date primitive precum double sau int. Utilizați clasa wrapper (cum ar fi Integer sau Double) in schimb.
19) Ce este o stivă?
O stivă este o zonă specială a memoriei computerului care stochează variabile temporare create de o funcție. În stivă, variabilele sunt declarate, stocate și inițializate în timpul rulării.
20) Ce este lista legată?
O listă legată este o structură de date care poate stoca o colecție de articole. Cu alte cuvinte, listele legate pot fi utilizate pentru a stoca mai multe obiecte de același tip. Fiecare unitate sau element al listei este denumit nod. Un nod din lista Linked are datele sale și adresa următorului nod. Este ca un lanț. Listele legate sunt folosite pentru a crea grafice și arbori.
Java Colecții Interviu Întrebări și răspunsuri pentru experimentați
21) Dați un exemplu de ArrayList
Exemplul de ArrayList este:
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) Explicați lista legată susținută de Java
Două tipuri de liste conectate acceptate de Java sunt:
- Lista legată individual: Lista cu legături individuale este un tip de structură de date. Într-o listă legată individual, fiecare nod din listă stochează conținutul nodului și o referință sau un indicator către următorul nod din listă. Nu stochează nicio referință sau pointer către nodul anterior.
- Liste dublu legate: Listele dublu legate sunt un tip special de listă legată în care traversarea elementelor de date se poate face în ambele direcții. Acest lucru este posibil prin existența a două legături în fiecare nod, una care se conectează la următorul nod și alta care se conectează la nodul anterior.
23) Explicați metodele oferite de interfața Queue?
Metode de Java Interfața de coadă sunt:
Metodă | Descriere |
---|---|
adăugare booleană (obiect) | Inserează elementul specificat în coadă. Se întoarce adevărat în cazul în care este un succes. |
ofertă booleană (obiect) | Această metodă este folosită pentru a introduce elementul în coadă. |
Eliminare obiect() | Preia și îndepărtează capul de coadă. |
Sondaj obiect() | (): Preia și elimină capul de coadă sau returnează nul în cazul în care este gol. |
Sondaj obiect() | Preia și elimină capul de coadă sau returnează nul în cazul în care este gol. |
Element obiect() | Preia datele din coadă, dar nu îi scoate capul. |
Privire obiect() | Preia datele din coadă, dar nu le îndepărtează capul sau, în cazul în care, dacă coada este, coada este goală, va prelua null. |
24) Menționați metodele oferite de clasa Stack
Metodele importante oferite de clasa Stack sunt:
- Apăsaţi(): Împingeți articolul în stivă.
- gol (): Această metodă constată că stiva este goală sau nu.
- pop (): Acest Java metoda cadru de colectare elimină obiectul din stivă.
- căutare (): Această metodă caută articole din stivă.
- privirea (): Acest Java metoda se uită la obiectul stivei fără a-l elimina.
25) Definiți emptySet() în Java cadrul colecțiilor
Metoda emptySet() care returnează setul imuabil gol ori de câte ori programatorii încearcă să elimine elementele nule. Setul care este returnat de emptySet() este serializabil. Sintaxa acestei metode este:
public static final A stabilit emptySet()
26) Faceți diferența între colecție și colecții
Diferența dintre colecție și colecție este:
Colectie | Colecţii |
---|---|
Colecția este o interfață. | Colecțiile sunt o clasă. |
Reprezintă un grup de obiecte ca o singură entitate. | Acesta definește diverse metode de utilitate pentru obiectele de colecție. |
Colecția este interfața rădăcină a fișierului Java Cadrul de colectare. | Colecțiile sunt o clasă de utilitate generală. |
Această interfață este utilizată pentru a deriva structurile de date de colectare. | Această clasă conține metode statice pentru a manipula structura datelor. |
27) Definiți LinkedHashSet în Java Cadrul de colectare?
LinkedHashSet este o subclasă a clasei numită HashSet și implementează interfața set. Este o versiune bine ordonată a HashSet care menține o listă dublu legată în toate elementele sale.
28) Care este diferența dintre failfast și failsafe?
Faifast | Sigur |
---|---|
Nu permite modificarea colecției în timpul iterării. | Permite modificarea colecției în timpul iterării. |
Poate arunca ConcurrentModificationException | Nu poate face nicio excepție. |
Folosește colecția originală pentru a traversa elementele. | Folosește o copie originală a colecției pentru a traversa elementele. |
Nu este nevoie de memorie suplimentară. | Există o cerință de memorie suplimentară. |
29) Listează vizualizări de colecție ale unei interfețe de hartă
Vizualizările de colecție ale interfeței hărții sunt: 1) vizualizare set de chei, 2) vizualizare set de valori și 3) vizualizare set de intrare.
30) Care sunt beneficiile Cadrului de Colectare în Java?
Beneficiile Collection Framework în Java sunt:
- Java cadrul de colectare oferă structuri de date extrem de eficiente și eficiente care sporesc acuratețea și viteza programului.
- Programul dezvoltat cu Java cadrul de colectare este ușor de întreținut.
- Un dezvoltator poate amesteca clase cu alte tipuri care au ca rezultat creșterea reutilizabilității codului.
- Java cadrul de colecție permite programatorilor să modifice tipurile de colecție primitive așa cum doresc.
31) Care este o modalitate bună de a sorta obiectele din colecție Java?
O modalitate bună de a sorta Java obiectele de colecție utilizează interfețele Comparabil și Comparator. Un dezvoltator poate folosi Collections.sort(), elementele sunt sortate pe baza mențiunii de ordine în compareTo().
Când un dezvoltator folosește Colecții, sortează (Comparator), sortează obiectele în funcție de compară() a interfeței Comparator.
32) Explicați Vector în Java
Vectorul este același cu un tablou. Are componente care pot fi accesate folosind o valoare de index. Vectorii pot conține o metodă moștenită care nu face parte din cadrul de colectare.
33) Care este diferența dintre Set și Map?
set | Hartă |
---|---|
Setul aparține pachetului-java.util. | Harta aparține pachetului-java.util. |
Poate extinde interfața de colecție. | Nu extinde interfața de colecție. |
Nu permite valori duplicate. | Permite valori duplicate. |
Setul poate sorta o singură valoare nulă. | Harta poate sorta mai multe valori nule. |
34) Definiți clasa de dicționar
Clasa Dicționar este a Java clasă care are capacitatea de a stoca perechi cheie-valoare.
35) Definiți EnumSet
java.util.EnumSet este implementarea Set care poate fi folosită cu tipuri de enumerare. EnumSet care are toate elementele trebuie să provină dintr-un tip de enumerare specificat explicit sau implicit. Nu este sincronizat și, de asemenea, cheile nule nu sunt permise. EnumSet oferă metode precum EnumSetof(E first, E... rest), complementOf(EnumSet s) și copyOf(Collection c).
36) Care sunt cele două moduri de a elimina duplicatele din ArrayList?
Două moduri de a elimina duplicatele din ArrayList sunt:
- HashSet: Dezvoltatorul poate folosi HashSet pentru a elimina elementul duplicat din ArrayList. Dezavantajul este că nu poate păstra ordinea de inserare.
- LinkedHashSet: De asemenea, dezvoltatorii pot menține ordinea de inserare folosind LinkedHashSet în loc de HashSet.
37) Ce este IdentityHashMap?
IdentityHashMap este o clasă care implementează interfețe Serializabile, Clonabile, Map și extinde clasa AbstractMap. Este conceput pentru cazul în care este nevoie de semantică de egalitate de referință.
38) Ce este WeakHashMap?
WeakHashMap este o implementare a programului Java Hartă. Este folosit pentru a stoca referințe slabe la cheile sale. Sortarea folosind această hartă permite ca o pereche cheie-valoare să fie colectată ca gunoi. Cheia sa nu este referită în afara WeakHashMap.
39) Care sunt metodele de a face colecția sigură pentru fire?
Metodele de a asigura siguranța firelor de colectare sunt:
- Collections.synchronizedList(lista);
- Colecții.synchronizedMap(hartă);
- Collections.synchronizedSet(set);
40) Explicați NeacceptatOperationException
neacceptatăOperationException este o excepție care este aruncată pe metode care nu sunt acceptate de tipul real de colecție.
De exemplu, Developer realizează o listă numai pentru citire folosind „Collections.unmodifiableList(list)” și apelând metoda call(), add() sau remove(). Ar trebui să arunce în mod clar UnsupportedOperationException.
41) Denumiți clasele de colecție care oferă acces aleatoriu la elementele sale
Clasele de colecție care oferă acces aleatoriu la elementele sale sunt: 1) ArrayList, 2) HashMap, 3) TreeMap și 4) Hashtable.
42) Explicați diferența dintre Queue și Deque.
Coadă | Deque |
---|---|
Se numește coadă cu un singur capăt | Se numește coadă dublă |
Elementele din coadă sunt adăugate sau eliminate de la un capăt | Elementele din coadă sunt adăugate de la oricare capăt pot fi adăugate și eliminate de la ambele capete |
Este mai puțin versatil. | Este mai versatil. |
43) Menționați interfața de implementare Listă și Set
Interfața Listă de implementare a clasei: 1) ArrayList, 2) Vector și 3) LinkedList.
Clasa implementează interfața Set: 1) HashSet și 2) TreeSet.
44) Explicați modelul de proiectare urmat de Iterator
Iteratorul urmează detaliul modelului de proiectare a iteratorului. Oferă dezvoltatorului să navigheze prin colecțiile de obiecte folosind o interfață comună fără a cunoaște implementarea acesteia.
45) Care este peek() al interfeței Queue?
Peek () este o metodă de interfață de coadă. Preia toate elementele, dar nu elimină capul de coadă. În cazul în care coada este goală, atunci această metodă va returna null.
46) Ce este CopyOnWriteArrayList?
CopyOnWriteArrayList este o variantă a ArrayList în care operațiuni precum add și set sunt implementate prin crearea unei copii a matricei. Este un thread-safe și, prin urmare, nu aruncă ConcurrentModificationException. Acest ArrayLists permite toate elementele, inclusiv null.
47) Faceți diferența între ArrayList și LinkedList
Diferența dintre ArrayList și LinkedList este:
ArrayList | LinkedList |
---|---|
Utilizează o matrice dinamică. | Utilizează o listă dublu legată. |
ArrayList nu este de preferat pentru manipulare. | LinkedList este de preferat pentru manipulare. |
ArrayList oferă acces aleatoriu. | LinkedList nu oferă acces aleatoriu. |
ArrayList stochează numai obiecte, prin urmare este nevoie de mai puțină suprasarcină de memorie | LinkedList stochează obiectul, precum și obiectul adresa; prin urmare, este nevoie de mai multă suprasarcină de memorie. |
48) Explicați metodele interfeței iteratorului
Metodele de interfață iteratoare sunt:
Metodă | Descriere |
---|---|
boolean public hasNext() | Returnează adevărat în iteratorul are elemente; în caz contrar, se întoarce false. |
Public Object next() | Această metodă returnează elementul și mută indicatorul la următoarea valoare. |
public void remove() | Acest Java metoda poate elimina ultimele elemente returnate de iterator. Public void remove() este mai puțin utilizat. |
49) Care sunt metodele clasei HashSet?
Metodele clasei HashSet sunt:
Aplicate | Descriere |
---|---|
boolean add(Obiect o) | Această metodă adaugă elementul de mențiune la acest set dacă nu este deja prezent. |
boolean conține (Obiect o): | Returnează adevărat dacă setul conține elementul specificat. |
void clear(): | Această metodă elimină elementele setate. |
boolean isEmpty(): | Returnează adevărat în cazul în care setul nu are elemente. |
boolean remove (Obiect o): | Îndepărtează elementul specificat din set. |
clona obiect(): | Această metodă returnează o copie a instanței HashSet: elementele în sine nu sunt clonate. |
iterator iterator() | Returnează un iterator peste elementele din acest set. |
dimensiune int(): | Returnează numărul de elemente disponibile în set. |
50) Care sunt metodele de Java Clasa TreeSet?
Metodele de Java Clasa TreeSet sunt:
Aplicate | Descriptionii |
---|---|
boolean addAll(Colecția c) | Adăugați toate elementele din colecția specificată la acest set. |
boolean conține (Obiect o) | Returnează adevărat dacă setul conține elementul de mențiune. |
boolean este gol () | Acest Java metoda returnează true dacă acest set nu conține elemente. |
Eliminare booleană (Obiect o) | Scoateți elementul specificat din set. |
void add(Obiect o) | Adaugă elementul specificat la set. |
void clear() | Acest Java metoda elimina toate elementele din multime. |
51) Explicați Linked HashSet
Java Clasa LinkedHashSet este o implementare a listei Linked și a tabelului Hash a interfeței Set. Conține elemente unice la fel ca un HashSet. HashSet conectat în Java oferă, de asemenea, operațiuni de set opționale care pot menține ordinea de inserare.
52) Care sunt metodele importante utilizate într-o listă legată?
Metodele importante utilizate în lista legată sunt:
Metodă | Descriere |
---|---|
adăugare booleană (Obiect o) | Este folosit pentru a adăuga elementul specificat la sfârșitul vectorului. |
boolean conține (Obiect o) | Este o metodă care returnează true dacă această listă conține elementul specificat. |
void add (index int, element Object) | Inserează elementul la elementul specificat în vector. |
void addFirst (Obiect o) | Este folosit pentru a introduce elementul dat la început. |
void addLast(Obiect o) | Este folosit pentru a adăuga elementul dat la sfârșit. |
Dimensiune int () | Această metodă poate fi folosită pentru a returna numărul total de elemente dintr-o listă. |
Eliminare booleană (Obiect o) | Poate elimina prima apariție a elementului specificat din această listă. |
int indexOf(element obiect) | Acest Java metoda returnează indexul cu prima apariție a elementului de mențiune din această listă sau -1. |
int lastIndexOf(element obiect) | Este o Java metodă care returnează indexul cu ultima apariție a elementului specificat în această listă sau -1. |
53) Listați diferite clase disponibile în seturi
Diverse clase disponibile în seturi sunt: HashSet, TreeSetand și LinkedHashSet.
54) Enumerați metodele disponibile în Java Interfață coadă
- adăugare booleană (obiect)
- ofertă booleană (obiect)
- obiect remove()
- obiect sondaj()
- element obiect()
- obiect peek()
55) Faceți diferența între Listă și Set.
Listă | set |
---|---|
O colecție ordonată de elemente | O colecție neordonată de elemente |
Păstrează ordinea de inserare | Nu păstrează ordinea de inserare |
Sunt permise valori duplicate | Nu sunt permise valori duplicate |
Orice număr de valori nule poate fi stocat | Numai o singură valoare nulă poate fi stocată |
ListIterator poate fi folosit pentru a parcurge Lista în orice direcție | ListIterator nu poate fi folosit pentru a parcurge un set |
Conține o clasă moștenită numită vector | Nu conține nicio clasă moștenită |
Java Colecții Interviu Întrebări și Răspunsuri pentru 5+ ani de experiență
56) Explicați pentru fiecare buclă cu un exemplu
For-Each Loop este o altă formă de buclă for folosită pentru a traversa matricea. Reduce codul în mod semnificativ și nu există nicio utilizare a indexului sau mai degrabă a contorului în buclă.
Exemplu de pentru fiecare buclă:
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) Explicați operatorul diamant
Operatorul Diamond permite compilatorului să colecteze argumentele tip ale clasei generice. În Java SE, dezvoltatorul poate înlocui constructorul parametrizat cu un set de parametri gol (<>) cunoscut sub numele de operator diamant.
58) Explicați interfața cu acces aleatoriu
Interfața RandomAccess este folosită de implementările List pentru a indica faptul că suportă rapid.
59) Denumiți clasele de colecție care implementează interfața cu acces aleatoriu
JavaPachetul .util are clase care pot implementa interfața cu acces aleator sunt: CopyOnWriteArrayList, Stack, ArrayList și Vector.
60) Cum să vă alăturați mai multor ArrayLists?
Lista oferă o metodă addall() în mai multe ArrayList Java.
De exemplu, luați în considerare două liste 1) areaList și 2) secondAreaList. Un dezvoltator se poate alătura acestora folosind addall() ca:
areaList.addAll(secondAreaList);
61) Explicați interfața deque
Java.util.Deque este Java, o interfață care extinde interfața Queue. Oferă suport pentru inserarea și ștergerea elementelor la ambele capete. Această coadă se mai numește și coadă dublă.
62) Explicați Linkedhashmap
LinkedHashMap este implementarea interfeței Map. De asemenea, poate extinde clasa HashMap. Prin urmare, la fel ca HashMap, LinkedHashMap activează Java dezvoltatorii să permită o cheie nulă și mai mult de o valoare nulă.
63) Explicați metodele de eliminare a elementelor din ArrayList
Metodele de eliminare a elementelor din ArrayList sunt:
Metodă | Descriere |
---|---|
clar() | Această metodă elimină elementele din ArrayList. |
elimina (index int) | Această metodă de ArrayList poate elimina elementul dintr-o anumită poziție. |
elimina (obiectul o) | Poate elimina prima apariție a elementului de mențiune din ArrayList. |
inlătură tot() | Poate elimina lista de elemente care se află într-o anumită colecție. |
removeIf(Predicat filtru) | Această metodă înlătură elementele care satisfac mențiunea unui predicat. |
64) Explicați harta. intrare în hartă
Map.entry este a Java interfața java.util. Are o interfață imbricată în Map. Această interfață trebuie să fie calificată prin numele clasei sau al interfeței din care face parte. Prin urmare, este calificată ca Hartă. Intrare. Reprezintă o pereche cheie și valoare care poate forma elementul unei hărți.
Această metodă returnează o vedere a colecției. De exemplu, luați în considerare cityMap ca o hartă. Dezvoltatorul poate folosi entrySet() pentru a obține vizualizarea setată a hărții având un element Map.Entry. Programatorul poate folosi, de asemenea, getKey() și getValue() din Map.Entry pentru a obține perechea de cheie și valoare a hărții.
65) Ce metodă este folosită pentru a sorta o matrice în ordine crescătoare?
Java Metoda cadrului de colectare, Collections.sort() este folosită pentru a sorta o matrice în ordine crescătoare.
66) Cum se măsoară performanța unui ArrayList?
Performanța ArrayList poate fi măsurată prin:
- Adăugarea unui element: Dezvoltatorul poate adăuga un element la sfârșitul ArrayList folosind metoda add(E e). Este O(1). În cel mai rău scenariu, ar putea ajunge la O(n). Acest lucru se poate întâmpla dacă dezvoltatorul adaugă mai multe elemente decât capacitatea matricei.
- Preluarea unui element: Dezvoltatorul poate accesa indexul matricei folosind get(int index). Performanța, în acest caz, poate fi măsurată folosind ArrayList get() este O(1).
- Eliminarea unui element: În cazul în care, în cazul în care dezvoltatorii îndepărtează element folosind remove(int index), atunci performanța ArrayList poate fi calculată folosind metoda de eliminare (int index) este O(n – index).
67) Explicați clasa LinkedList
Clasa LinkedList în Java implementează Deque și List folosind o listă dublu legată. Există un nod de clasă privată într-o listă dublu legată care oferă structura acestuia. Are, de asemenea, o variabilă element pentru păstrarea valorii și referința la clasa Node. Acesta poate fi folosit pentru conectarea nodurilor următoare și anterioare.
68) Dați un exemplu de Hashmap
Exemplul de Hashmap este:
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) Cum se repetă harta?
Dezvoltatorul nu poate repeta direct harta, dar această interfață are două metode care oferă un set de vizualizare a hărții. Aceste metode sunt:
- A stabilit >entrySet(): Este o metodă care returnează un set având intrările menționate în hartă. Aceste intrări sunt în general obiectate, care au tipul Hartă. Intrare.
- A stabilit keySet(): Acest Java metoda returnează un set care are cheia hărții.
70) Explicați Harta arborelui în Java
TreeMap este o clasă care implementează interfața Map LinkedHashMap și HashMap. De asemenea, poate implementa interfața NavigableMap și poate extinde clasa AbstractMap.
71) Care este diferența dintre Hashmap și Hashtable?
Hashmap | Hashtable |
---|---|
Nu este sincronizat. | Este sincronizat. |
Hashmap permite o cheie ca valoare nulă. | HashTable nu permite valori nule. |
Iteratorul este folosit pentru a parcurge HashMap. | Fie Iterator, fie Enumerator este folosit pentru a parcurge un HashTable. |
Poate fi folosit atât pentru HashTable, cât și pentru HashMap și este rapid. | Poate fi folosit cu HashTable și este sigur. |
HashMap funcționează mai rapid decât HashTable. | Hashtable nu este mult mai rapid în comparație cu HashMap. |
72) Explicați funcționarea internă a HashSet în Java
HashSet in Java utilizează intern HashMap pentru a stoca elemente. De asemenea, poate stoca valori unice fără valori duplicate.
In Java, Dezvoltatorul HashSet poate avea metoda add(E e) care ia doar elementul de adăugat ca parametru. Nu acceptă perechea cheie și valoare.
73) Explicați notația Big-O cu un exemplu
Notația Big-O descrie performanța unui algoritm ca număr de elemente din ArrayList. Un dezvoltator poate folosi notația Big-O pentru a alege implementarea colecției. Se bazează pe performanță, timp și memorie.
De exemplu, ArrayList get(index i) este o metodă de a efectua o operație în timp constant. Nu depinde de numărul total de elemente disponibile în listă. Prin urmare, performanța în notația Big-O este O(1).
74) Explicați cele mai bune practici în Java Cadru de colectare
Cele mai bune practici în Java Cadrul de colectare este:
- Alegerea tipului corect de colectare depinde de nevoie.
- Evitați rehașarea sau redimensionarea estimând numărul total de elemente care urmează să fie stocate în clasele de colecție.
- Scrie o Java program din punct de vedere al interfețelor. Acest lucru va ajuta dezvoltatorul să-și schimbe implementarea fără efort în viitor.
- Un dezvoltator poate folosi Generics pentru siguranța tipului.
- Folosiți clase imuabile date de Java Kit de dezvoltare. Evitați implementarea equals() și hashCode() pentru clasele personalizate.
- Un programator ar trebui să folosească clasa de utilitate Colecții pentru algoritmi sau pentru a obține colecții numai în citire, sincronizate sau goale. Acest lucru va spori reutilizarea codului cu o întreținere scăzută.
75) Explicați diferitele tipuri de cozi în Java
Există trei tipuri de cozi Java:
- Coada de prioritate: Este un tip special de coadă în care elementele sunt sortate conform ordonării lor naturale sau comparatorului personalizat.
- Coada circulară: Este un tip de coadă în care operațiunile utilizatorului sunt efectuate pe baza metodei FIFO. Ultimul element este conectat la prima poziție pentru a face un cerc.
- Doublecoadă terminată: O coadă dublă este un tip abstract de date care generalizează o coadă. Elementele din această coadă pot fi adăugate sau eliminate fie din cap, fie din coadă.
76) Care este diferența dintre stack și Queue?
Stivui | Coadă |
---|---|
Principiul de funcționare al stivei este LIFO. | Principalul de lucru al cozii este FIFO. |
Un capăt este utilizat pentru a efectua inserarea sau ștergerea elementelor. | Un capăt este folosit pentru a efectua inserarea, iar un alt capăt este folosit pentru ștergerea elementelor. |
Folosește un singur indicator. | Folosește doi pointeri într-o coadă simplă. |
Nu are nici un fel de varianta. | Are variante precum coadă prioritară, coadă circulară, coadă dublu terminată. |
Este ușor de utilizat. | Nu este ușor de utilizat. |
77) Care este diferența dintre matrice și stivă?
Diferența dintre matrice și stivă este:
Mulțime | Stivui |
---|---|
Este o colecție de elemente care sunt identificate prin index. | Este o operațiune de colectare care servește ca operațiuni push și pop. |
Are elemente de tipuri de date care sunt aceleași. | Are elemente de tipuri de date care sunt diferite. |
Elementele pot fi eliminate sau adăugate în matrice folosind operația de acces aleatoriu. | Elementele pot fi eliminate sau adăugate într-o stivă folosind operația LIFO. |
78) Definiți iteratorul()
Iterator() este o interfață care oferă metode pentru a repeta Collection. Iteratorul poate lua locul Enumerării în Java. Permite apelantului să elimine elemente din colecție. Metoda oferă o modalitate generică de parcurgere folosind elemente ale colecției și implementarea modelului de proiectare a iteratorului.
79) Care sunt diferitele moduri de a repeta o listă?
Java Programul cadru de colectare poate itera o listă în două moduri: 1) Folosind iteratorul și 2) folosindu-l pentru fiecare buclă.
80) Care sunt avantajele stivei?
Avantajele stivei sunt:
- Vă ajută să gestionați datele într-o metodă Last In First Out (LIFO), ceea ce nu este posibil cu lista și matricea Linked.
- Când o funcție este apelată, variabilele locale sunt stocate într-o stivă și este distrusă automat odată ce este returnată.
- O stivă este utilizată atunci când o variabilă nu este utilizată în afara acelei funcții.
- Vă permite să controlați modul în care memoria este alocată și dealocată.
- Stack curăță automat obiectul.
- Nu se corupt ușor
- Variabile nu poate fi redimensionat.
Aceste întrebări de interviu vă vor ajuta, de asemenea, în viva (orale)