logo

34 Vprašanja za intervju z zbirkami Java

Anketarji v Javi najpogosteje zastavljajo vprašanja o intervjuju za zbiranje. Tukaj je seznam najpogosteje zastavljenih vprašanj za intervjuje z zbirkami z odgovori.


1) Kaj je ogrodje zbirke v Javi?

Ogrodje zbirke je kombinacija razredov in vmesnika, ki se uporablja za shranjevanje in obdelavo podatkov v obliki objektov. Ponuja različne razrede, kot so ArrayList, Vector, Stack in HashSet itd., ter vmesnike, kot so List, Queue, Set itd. za ta namen.


2) Kakšne so glavne razlike med nizom in zbirko?

Array in Collection sta si nekoliko podobna glede shranjevanja referenc objektov in manipulacije s podatki, vendar se razlikujeta v mnogih pogledih. Glavne razlike med matriko in zbirko so opredeljene spodaj:

  • Nizi so vedno fiksne velikosti, kar pomeni, da uporabnik ne more povečati ali zmanjšati dolžine niza v skladu s svojimi zahtevami ali med izvajanjem, v zbirki pa se velikost lahko spreminja dinamično po potrebi.
  • Nizi lahko shranjujejo samo homogene ali podobne objekte, v zbirki pa so lahko shranjeni heterogeni objekti.
  • Nizi ne morejo zagotoviti ?pripravljenega? metode za zahteve uporabnikov, kot so razvrščanje, iskanje itd., vendar zbirka vključuje že pripravljene metode za uporabo.

3) Pojasnite različne vmesnike, ki se uporabljajo v ogrodju zbirke?

Ogrodje zbirke izvaja različne vmesnike, vmesnik zbirke in vmesnik zemljevida (java.util.Map) sta večinoma uporabljena vmesnika ogrodja zbirke Java. Seznam vmesnikov zbirke Framework je podan spodaj:

1. Zbiralni vmesnik: Zbirka (java.util.Collection) je primarni vmesnik in vsaka zbirka mora implementirati ta vmesnik.

Sintaksa:

 public interface Collectionextends Iterable 

Kjer pomeni, da je ta vmesnik generičnega tipa

2. Vmesnik seznama: Vmesnik seznama razširja vmesnik zbirke in je urejena zbirka predmetov. Vsebuje podvojene elemente. Omogoča tudi naključen dostop do elementov.

Sintaksa:

 public interface List extends Collection 

3. Nastavite vmesnik: Vmesnik Set (java.util.Set) je zbirka, ki ne sme vsebovati podvojenih elementov. Vključuje lahko samo podedovane metode vmesnika Collection

Sintaksa:

 public interface Set extends Collection 

Vmesnik čakalne vrste: Čakalna vrsta (java.util.Queue) vmesnik definira podatkovno strukturo čakalne vrste, ki shranjuje elemente v obliki FIFO (first in first out).

Sintaksa:

 public interface Queue extends Collection 

4. Vmesnik za odstranitev čakalne vrste: to je čakalna vrsta z dvojnim koncem. Omogoča vstavljanje in odstranjevanje elementov z obeh koncev. Implantira lastnosti sklada in čakalne vrste, tako da lahko izvaja operacije sklada LIFO (zadnji v prvi ven) in čakalne vrste FIFO (prvi v prvi ven).

Sintaksa:

 public interface Dequeue extends Queue 

5. Vmesnik zemljevida: Zemljevid (java.util.Map) predstavlja shrambo elementov ključnega para vrednosti. Vmesnik zemljevida ne izvaja vmesnika zbirke. Vsebuje lahko samo enoličen ključ, vendar ima lahko podvojene elemente. Obstajata dva vmesnika, ki izvajata Map v Javi, in sicer vmesnik Map in Sorted Map.

naključni vrstni red sql

4) Kakšna je razlika med ArrayList in Vector?

št.ArrayListVektor
1)ArrayList ni sinhroniziran.Vektor je sinhroniziran.
2)ArrayList ni starejši razred.Vektor je starejši razred.
3)ArrayList poveča svojo velikost za 50 % velikosti matrike.Vektor poveča svojo velikost s podvojitvijo velikosti polja.
4)ArrayList ni ?nitno varen? saj ni sinhroniziran.Vektorski seznam je ?nitno varen? saj je vsaka metoda sinhronizirana.

5) Kakšna je razlika med ArrayList in LinkedList?

št.ArrayListLinkedList
1)ArrayList uporablja dinamično polje.LinkedList uporablja dvojno povezan seznam.
2)ArrayList ni učinkovit za manipulacijo, ker je potrebno preveč.LinkedList je učinkovit za manipulacijo.
3)ArrayList je boljši za shranjevanje in pridobivanje podatkov.LinkedList je boljši za manipulacijo podatkov.
4)ArrayList omogoča naključen dostop.LinkedList ne omogoča naključnega dostopa.
5)ArrayList porabi manj pomnilnika, saj shranjuje samo objektLinkedList porabi več pomnilnika, saj shrani objekt in naslov tega predmeta.

6) Kakšna je razlika med Iteratorjem in ListIteratorjem?

Iterator prečka elemente samo v smeri naprej, medtem ko ListIterator prečka elemente v smeri naprej in nazaj.

št.IteratorListIterator
1)Iterator prečka elemente samo v smeri naprej.ListIterator prečka elemente v smeri nazaj in naprej.
2)Iterator se lahko uporablja na seznamu, naboru in čakalni vrsti.ListIterator je mogoče uporabiti samo v seznamu.
3)Iterator lahko izvede samo operacijo odstranitve med prečkanjem zbirke.ListIterator lahko izvaja ?add,? ?Odstrani,? in ?set? delovanje med prečkanjem zbirke.

7) Kakšna je razlika med Iteratorjem in Enumeration?

št.IteratorNaštevanje
1)Iterator lahko prečka podedovane in nepodedovane elemente.Naštevanje lahko prečka le podedovane elemente.
2)Iterator je hiter.Enumeracija ni hitra.
3)Iterator je počasnejši od enumeration.Enumeracija je hitrejša od Iteratorja.
4)Iterator lahko izvede operacijo odstranitve med prečkanjem zbirke.Enumeracija lahko izvede samo operacijo prečkanja zbirke.

8) Kakšna je razlika med Listom in Setom?

Seznam in Set razširjata zbirni vmesnik. Vendar pa obstaja nekaj razlik med obema, ki so navedene spodaj.

  • Seznam lahko vsebuje podvojene elemente, medtem ko Set vključuje edinstvene elemente.
  • Seznam je urejena zbirka, ki ohranja vrstni red vstavljanja, medtem ko je Set neurejena zbirka, ki ne ohranja vrstnega reda vstavljanja.
  • Vmesnik List vsebuje en podedovan razred, ki je vektorski razred, medtem ko vmesnik Set nima nobenega podedovanega razreda.
  • Vmesnik List lahko dovoli n ničelnih vrednosti, medtem ko vmesnik Set dovoljuje samo eno ničelno vrednost.

9) Kakšna je razlika med HashSet in TreeSet?

HashSet in TreeSet, oba razreda, izvajata vmesnik Set. Spodaj so navedene razlike med obema.

  • HashSet ne ohranja vrstnega reda, medtem ko TreeSet vzdržuje naraščajoči vrstni red.
  • HashSet ovira zgoščena tabela, medtem ko TreeSet implementira drevesna struktura.
  • HashSet deluje hitreje kot TreeSet.
  • HashSet podpira HashMap, medtem ko TreeSet podpira TreeMap.

10) Kakšna je razlika med Set in Map?

Razlike med kompletom in zemljevidom so navedene spodaj.

  • Nabor vsebuje samo vrednosti, medtem ko zemljevid vsebuje tako ključ kot vrednosti.
  • Nabor vsebuje edinstvene vrednosti, medtem ko lahko zemljevid vsebuje edinstvene ključe s podvojenimi vrednostmi.
  • Set vsebuje eno samo število ničelnih vrednosti, medtem ko lahko Map vključuje en sam ničelni ključ z n številom ničelnih vrednosti.

11) Kakšna je razlika med HashSet in HashMap?

Spodaj so navedene razlike med HashSet in HashMap.

  • HashSet vsebuje samo vrednosti, medtem ko HashMap vključuje vnos (ključ, vrednost). HashSet je mogoče ponoviti, vendar se mora HashMap pretvoriti v Set, da se ponovi.
  • HashSet implementira vmesnik Set, medtem ko HashMap implementira vmesnik Map
  • HashSet ne more imeti nobene podvojene vrednosti, medtem ko lahko HashMap vsebuje podvojene vrednosti z edinstvenimi ključi.
  • HashSet vsebuje samo eno število ničelnih vrednosti, medtem ko lahko HashMap vsebuje en sam ničelni ključ z n številom ničelnih vrednosti.

12) Kakšna je razlika med HashMap in TreeMap?

Spodaj so navedene razlike med HashMap in TreeMap.

  • HashMap ne vzdržuje vrstnega reda, TreeMap pa ohranja naraščajoči vrstni red.
  • HashMap je implementiran z zgoščeno tabelo, medtem ko je TreeMap implementiran z drevesno strukturo.
  • HashMap je mogoče razvrstiti po ključu ali vrednosti, medtem ko je TreeMap mogoče razvrstiti po ključu.
  • HashMap lahko vsebuje ničelni ključ z več ničelnimi vrednostmi, medtem ko TreeMap ne more imeti ničelnega ključa, lahko pa ima več ničelnih vrednosti.

13) Kakšna je razlika med HashMap in Hashtable?

št.HashMapRazpršitvena tabela
1)HashMap ni sinhroniziran.Hashtable je sinhroniziran.
2)HashMap lahko vsebuje en ničelni ključ in več ničelnih vrednosti.Hashtable ne sme vsebovati ničelnega ključa ali ničelne vrednosti.
3)HashMap ni ?thread-safe,? zato je uporaben za aplikacije brez niti.Hashtable je varen za niti in se lahko deli med različnimi niti.
4)4) HashMap podeduje razred AbstractMapHashtable podeduje razred Dictionary.

14) Kakšna je razlika med zbirko in zbirkami?

Spodaj so navedene razlike med zbirko in zbirkami.

  • Zbirka je vmesnik, medtem ko je zbirka razred.
  • Vmesnik za zbiranje zagotavlja standardno funkcionalnost podatkovne strukture za seznam, nastavitev in čakalno vrsto. Vendar je razred Zbirke namenjen razvrščanju in sinhronizaciji elementov zbirke.
  • Vmesnik zbirke ponuja metode, ki jih je mogoče uporabiti za strukturo podatkov, medtem ko razred zbirke ponuja statične metode, ki se lahko uporabljajo za različne operacije v zbirki.

15) Kakšna je razlika med primerljivim in primerjalnim?

št.PrimerljivoPrimerjalnik
1)Comparable nudi samo eno vrsto zaporedja.Primerjalnik ponuja več vrst zaporedij.
2)Ponuja eno metodo z imenom compareTo().Ponuja eno metodo z imenom compare().
3)Najdete ga v paketu java.lang.Nahaja se v paketu java.util.
4)Če implementiramo vmesnik Comparable, se dejanski razred spremeni.Dejanski razred se ne spremeni.

16) Kaj razumete pod BlockingQueue?

BlockingQueue je vmesnik, ki razširja vmesnik čakalne vrste. Zagotavlja sočasnost v operacijah, kot so iskanje, vstavljanje, brisanje. Med pridobivanjem katerega koli elementa čaka, da čakalna vrsta ni prazna. Med shranjevanjem elementov čaka na razpoložljiv prostor. BlockingQueue ne more vsebovati ničelnih elementov, implementacija BlockingQueue pa je varna za niti.

Sintaksa:

 public interface BlockingQueue extends Queue 

17) Kakšna je prednost datoteke z lastnostmi?

Če spremenite vrednost v datoteki lastnosti, vam razreda java ni treba znova prevesti. Tako je aplikacija enostavna za upravljanje. Uporablja se za shranjevanje informacij, ki jih je treba pogosto spreminjati. Razmislite o naslednjem primeru.

 import java.util.*; import java.io.*; public class Test { public static void main(String[] args)throws Exception{ FileReader reader=new FileReader('db.properties'); Properties p=new Properties(); p.load(reader); System.out.println(p.getProperty('user')); System.out.println(p.getProperty('password')); } } 

Izhod

 system oracle 

18) Kaj pomeni metoda hashCode()?

Metoda hashCode() vrne vrednost zgoščene kode (celo število).

Metoda hashCode() vrne isto celo število, če sta dva ključa (s klicem metode equals() enaka.

Vendar pa je možno, da imata dve številki zgoščene kode različne ali enake ključe.

Če dva objekta ne ustvarita enakega rezultata z uporabo metode equals(), bo metoda hashcode() zagotovila različen celoštevilski rezultat za oba predmeta.


19) Zakaj preglasimo metodo equals()?

Metoda equals se uporablja za preverjanje, ali sta dva predmeta enaka ali ne. Treba ga je preglasiti, če želimo preveriti objekte na podlagi lastnosti.

Na primer, Employee je razred, ki ima 3 podatkovne člane: id, ime in plačo. Želimo pa preveriti enakost predmeta zaposlenega s plačo. Nato moramo preglasiti metodo equals().


20) Kako sinhronizirati elemente List, Set in Map?

Da, razred zbirke ponuja metode za sinhronizacijo elementov seznama, nabora ali zemljevida:

javni statični seznam synchronizedList(List l){}
public static Set synchronizedSet(Set s){}
javni statični SortedSet synchronizedSortedSet(SortedSet s){}
javni statični zemljevid synchronizedMap(Map m){}
javni statični SortedMap synchronizedSortedMap(SortedMap m){}

21) Kakšna je prednost generične zbirke?

Obstajajo tri glavne prednosti uporabe generične zbirke.

številčenje abecede
  • Če uporabljamo generični razred, ne potrebujemo pretvorbe tipov.
  • Je tipsko varen in preverjen med prevajanjem.
  • Generic potrjuje stabilnost kode tako, da omogoča odkrivanje napak v času prevajanja.

22) Kaj je hash-collision v Hashtable in kako se z njim ravna v Javi?

Dva različna ključa z enako zgoščevalno vrednostjo sta znana kot zgoščevanje. Dva ločena vnosa bosta shranjena v enem zgoščenem vedru, da se izognemo koliziji. Obstajata dva načina, da se izognete zgoščenemu trku.

  • Ločeno veriženje
  • Odprite naslavljanje

23) Kaj je razred Slovar?

Razred Dictionary ponuja zmožnost shranjevanja parov ključ-vrednost.


24) Kakšna je privzeta velikost faktorja obremenitve v zbiranju, ki temelji na zgoščevanju?

Privzeta velikost faktorja obremenitve je 0,75 . Privzeta zmogljivost se izračuna kot začetna zmogljivost * faktor obremenitve. Na primer, 16 * 0,75 = 12. Torej je 12 privzeta zmogljivost zemljevida.


25) Kaj razumete pod fail-fast?

Iterator v Javi, ki takoj vrže ConcurrentmodificationException, če pride do kakršne koli strukturne spremembe, se imenuje Fail-fast iterator. Iterator Fail-fats ne zahteva dodatnega prostora v pomnilniku.


26) Kakšna je razlika med Array in ArrayList?

Glavne razlike med Array in ArrayList so navedene spodaj.

SNArrayArrayList
1Matrika je fiksne velikosti, kar pomeni, da velikosti matrike ne moremo spremeniti po potrebi.ArrayList ni fiksne velikosti, velikost lahko spreminjamo dinamično.
2Nizi so statičnega tipa.ArrayList je dinamične velikosti.
3Nizi lahko hranijo tako primitivne tipe podatkov kot objekte.ArrayList ne more shraniti primitivnih tipov podatkov, lahko shrani samo objekte.

27) Kakšna je razlika med dolžino matrike in velikostjo seznama ArrayList?

Dolžino matrike je mogoče pridobiti z lastnostjo length, medtem ko ArrayList ne podpira lastnosti length, lahko pa uporabimo metodo size(), da dobimo število predmetov na seznamu.

Iskanje dolžine niza

 Int [] array = new int[4]; System.out.println('The size of the array is ' + array.length); 

Iskanje velikosti seznama ArrayList

 ArrayList list=new ArrayList(); list.add('ankit');�� list.add('nippun'); System.out.println(list.size()); 

28) Kako pretvoriti ArrayList v Array in Array v ArrayList?

Matriko lahko pretvorimo v ArrayList z uporabo metode asList() razreda Arrays. Metoda asList() je statična metoda razreda Arrays in sprejema objekt List. Upoštevajte naslednjo sintakso:

 Arrays.asList(item) 

ArrayList lahko pretvorimo v Array z uporabo metode toArray() razreda ArrayList. Upoštevajte naslednjo sintakso za pretvorbo ArrayList v objekt List.

 List_object.toArray(new�String[List_object.size()]) 

29) Kako narediti Java ArrayList samo za branje?

Javo ArrayList Read-only lahko pridobimo s klicem metode Collections.unmodifiableCollection(). Ko ArrayList definiramo kot samo za branje, ne moremo izvesti nobenih sprememb v zbirki z metodo �add(), remove() ali set().


30) Kako odstraniti dvojnike iz ArrayList?

Dvojnike iz seznama ArrayList lahko odstranite na dva načina.

    Uporaba HashSeta:Z uporabo HashSeta lahko odstranimo podvojeni element iz ArrayList, vendar ne bo ohranil vrstnega reda vstavljanja.Uporaba LinkedHashSeta:Vrstni red vstavljanja lahko vzdržujemo tudi z uporabo LinkedHashSet namesto HashSet.

Postopek za odstranjevanje podvojenih elementov iz ArrayList z uporabo LinkedHashSet:

  • Kopirajte vse elemente ArrayList v LinkedHashSet.
  • Izpraznite ArrayList z metodo clear(), ki bo odstranila vse elemente s seznama.
  • Zdaj kopirajte vse elemente LinkedHashset v ArrayList.

31) Kako obrniti ArrayList?

Če želite obrniti ArrayList, lahko uporabimo metodo reverse() razreda Collections. Razmislite o naslednjem primeru.

 import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; public class ReverseArrayList { public static void main(String[] args) { List list = new ArrayList(); list.add(10); list.add(50); list.add(30); Iterator i = list.iterator(); System.out.println('printing the list....'); while(i.hasNext()) { System.out.println(i.next()); } Iterator i2 = list.iterator(); Collections.reverse(list); System.out.println('printing list in reverse order....'); while(i2.hasNext()) { System.out.println(i2.next()); } } } 

Izhod

 printing the list.... 10 50 30 printing list in reverse order.... 30 50 10 

32) Kako razvrstiti ArrayList v padajočem vrstnem redu?

Za razvrščanje seznama ArrayList v padajočem vrstnem redu lahko uporabimo metodo reverseOrder razreda Collections. Razmislite o naslednjem primeru.

 import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; public class ReverseArrayList { public static void main(String[] args) { List list = new ArrayList(); list.add(10); list.add(50); list.add(30); list.add(60); list.add(20); list.add(90); Iterator i = list.iterator(); System.out.println('printing the list....'); while(i.hasNext()) { System.out.println(i.next()); } Comparator cmp = Collections.reverseOrder(); Collections.sort(list,cmp); System.out.println('printing list in descending order....'); Iterator i2 = list.iterator(); while(i2.hasNext()) { System.out.println(i2.next()); } } } 

Izhod

Rajinikanth
 printing the list.... 10 50 30 60 20 90 printing list in descending order.... 90 60 50 30 20 10 

33) Kako sinhronizirati ArrayList?

ArrayList lahko sinhroniziramo na dva načina.

  • Uporaba metode Collections.synchronizedList().
  • Uporaba CopyOnWriteArrayList

3. 4) Kdaj uporabiti ArrayList in LinkedList?

LinkedLists je bolje uporabiti za operacije posodabljanja, medtem ko je ArrayLists bolje uporabiti za iskalne operacije.