Java kolekcijas ietvars gadā tika ieviests JDK 1.2 kurā ir visas kolekcijas klases un saskarnes. Java kolekcija ir ietvars, kas nodrošina mehānismu objektu kolekcijas glabāšanai un manipulēšanai ar tiem. Tas ļauj izstrādātājiem piekļūt iepriekš iepakotām datu struktūrām un algoritmiem, lai apstrādātu datus.
Šajā rakstā mēs esam apskatījuši 50 labākos Java kolekciju intervijas jautājumi un atbildes kas aptver visu, sākot no pamata līdz uzlabotām Java kolekcijas koncepcijām, piemēram, navigācijas kolekcija, WeakHashMap, straumes Lambdas utt. Neatkarīgi no tā, vai esat svaigāks vai an pieredzējis Java izstrādātājs , šie Java kolekciju intervijas jautājumi sniedz jums visu nepieciešamo pārliecību, lai izpildītu nākamo Java interviju.

Java kolekciju intervijas jautājumi
Mēs esam sadalījuši 50 jautājumus divās daļās: Pieredzējušie un Pirmie. Sāksim ar jautājumiem Freshers.
Satura rādītājs
- Java kolekcijas intervijas jautājumi pirmkursniekiem
- Java kolekcijas intervijas jautājumi pieredzējušiem
Java kolekcijas intervijas jautājumi pirmkursniekiem
1. Kas ir kolekcija Java?
Termiņš kolekcija attiecas uz objektu grupu, kas attēlota kā viena vienība. Klases Java kolekcijas klašu hierarhijā ir sadalītas divās daļās sakne saskarnes: Kolekcija (java.util.Collection) un Karte (java.util.Map) . Noteikumi, ar kuriem jūs saskarsities, mācoties par kolekciju Java:
- Kolekcijas ietvars: Java kolekcijas ietvars definē klases un saskarnes, lai attēlotu objektu grupas kā vienu entītiju. C++ izstrādātāji var salīdzināt kolekcijas sistēmu ar STL (standarta veidņu bibliotēka) un Container Framework ar kolekcijas ietvaru, ja tie nāk no C++ fona.
- Kolekcijas interfeiss: Klases saskarne norāda, kas tai jādara, nevis kā. Citiem vārdiem sakot, tas ir klases plāns. Šis interfeiss nodrošina visizplatītākās metodes visiem kolekcijas objektiem, kas ir daļa no kolekcijas ietvara. Alternatīvi, tas attēlo atsevišķu objektu kopumā.
- Kolekcijas klase: Collection Framework dalībnieks, tas ir daļa no java.util pakotnes. Kolekcijas objekts šajā klasē ir nodrošināts ar daudzām lietderības metodēm.
2. Kas ir ietvars Java?
Ietvari ir kopas klases un saskarnes kas nodrošina gatavu arhitektūru. Nav nepieciešams definēt ietvaru, lai ieviestu jaunas funkcijas vai klases. Rezultātā optimāls objektorientēts dizains ietver ietvaru, kas satur klašu kolekciju, kuras visas veic līdzīgus uzdevumus. Ietvaru var izmantot dažādos veidos, piemēram, izsaucot tās metodes, paplašinot to un nodrošinot atzvanīšanu, klausītājus un citas implementācijas. Daži no populārākajiem java ietvariem ir:
- Pavasaris
- Pārziemot
- Statņi
- Google tīmekļa rīkkopa (GWT)
- JavaServer Faces (JSF)
3. Kāda ir atšķirība starp masīvu un kolekciju Java?
Masīvi ir līdzīga tipa mainīgo kolekcija ar parastu nosaukumu Java. Ir dažas atšķirības starp masīviem Java un C/C++. No otras puses, kolekcijas ir atsevišķu objektu grupas, kas veido vienu vienību, kas pazīstama kā objektu kolekcija.
| Masīvi | Kolekcija |
|---|---|
| Masīvu izmērs ir fiksēts, tas nozīmē, ka, izveidojot masīvu, mēs nevaram palielināt vai samazināt, pamatojoties uz mūsu prasībām. | Kolekcija ir audzējama dabā un ir balstīta uz mūsu prasībām. Mēs varam palielināt vai samazināt izmēru. |
| Attiecībā uz atmiņu masīvus nav ieteicams lietot. | Attiecībā uz atmiņu kolekcijas ir ieteicamas lietošanai. |
| Attiecībā uz veiktspēju ieteicams izmantot masīvus. | Attiecībā uz veiktspēju kolekcijas nav ieteicamas lietošanai. |
| Masīvi var saturēt tikai viendabīgus datu tipu elementus. | Kolekcijā var būt gan viendabīgi, gan neviendabīgi elementi. |
Plašāku informāciju skatiet rakstā - Atšķirība starp masīviem un kolekcijām Java
4. Kādas ir Java Collections Framework dažādās saskarnes?
Kolekcija ir pazīstama kā kolekcijas hierarhijas sakne. Kolekcijas attēlo objektu grupas, kas pazīstamas kā elementi. Java platforma nenodrošina tiešu šīs saskarnes ieviešanu, bet kolekcijas interfeiss tiek ieviests klasēs List un Set.
- Kolekcijas saskarne
- Saraksta interfeiss
- Iestatīt saskarni
- Rindas interfeiss
- Atcelšanas interfeiss
- Kartes interfeiss
5. Izskaidrojiet Java kolekcijas ietvara hierarhiju.
Visas kolekcijas sistēmas nepieciešamās klases un saskarnes ir ietvertas utilīta pakotnē (java. util). Kolekciju ietvariem ir interfeiss, ko sauc par iterējamo saskarni, kas ļauj iteratoram atkārtot visas kolekcijas. Papildus šai saskarnei galvenā kolekcijas saskarne darbojas kā kolekcijas sistēmas sakne. Visas kolekcijas paplašina šo kolekcijas saskarni, tādējādi paplašinot iteratora īpašības un šīs saskarnes metodes. Nākamajā attēlā ir parādīta kolekcijas struktūras hierarhija.
Java kolekcijas hierarhija
6. Kādas ir kolekcijas Framework priekšrocības?
Kolekcijas ietvara priekšrocības: Tā kā savākšanas sistēmas trūkums radīja iepriekš minēto trūkumu kopumu, tālāk ir norādītas savākšanas sistēmas priekšrocības.
- Konsekventa API: API ir pamata saskarņu komplekts, piemēram Kolekcija , Iestatīt , Saraksts , vai Karte , ir visas klases (ArrayList, LinkedList, Vector utt.), kas ievieš šīs saskarnes daži kopīgs metožu kopums.
- Samazina programmēšanas piepūli: Programmētājam nav jāuztraucas par kolekcijas dizainu, bet viņš var koncentrēties uz tās labāko izmantošanu savā programmā. Līdz ar to ir veiksmīgi realizēta Objektorientētās programmēšanas (t.i.) abstrakcijas pamatkoncepcija.
- Palielina programmas ātrumu un kvalitāti: Palielina veiktspēju, nodrošinot augstas veiktspējas noderīgu datu struktūru un algoritmu ieviešanu, jo šajā gadījumā programmētājam nav jādomā par labāko konkrētas datu struktūras ieviešanu. Viņš var vienkārši izmantot labāko ieviešanu, lai krasi palielinātu sava algoritma/programmas veiktspēju.
7. Kas ir ArrayList Java?
ArrayList ir daļa no Java kolekcijas sistēmas, un tā ir java.util pakotnes klase. Tas nodrošina mums dinamiskus masīvus Java. Galvenās ArrayList priekšrocības ir tādas, ka, ja mēs deklarējam masīvu, ir jānorāda izmērs, bet ArrayList nav nepieciešams minēt ArrayList lielumu, ja vēlaties minēt izmēru, tad varat to izdarīt.

Array List attēls
Plašāku informāciju skatiet rakstā - ArrayList Java
8. Kāda ir atšķirība starp kolekciju un kolekcijām?
| Kolekcija | Kolekcijas |
|---|---|
| Tā ir saskarne. | Tā ir komunālo pakalpojumu klase. |
| To izmanto, lai attēlotu atsevišķu objektu grupu kā vienu vienību. | Tas nosaka vairākas utilīta metodes, kas tiek izmantotas, lai darbotos ar iekasēšanu. |
| Kolekcija ir saskarne, kas satur statisku metodi kopš java8. Interfeiss var ietvert arī abstraktas un noklusējuma metodes. | Tas satur tikai statiskas metodes. |
Plašāku informāciju skatiet rakstā - Kolekcija pret kolekcijām Java ar piemēru
9. Atšķirība starp ArrayList un LinkedList Java kolekcijas sistēmā?

ArrayList un LinkedList
java ar šūpolēm
| ArrayList | LinkedList |
|---|---|
| Šī klase izmanto dinamisku masīvu, lai saglabātu tajā esošos elementus. Ieviešot vispārīgos līdzekļus, šī klase atbalsta visu veidu objektu uzglabāšanu. | Šī klase izmanto divkārši saistītu sarakstu, lai saglabātu tajā esošos elementus. Līdzīgi kā ArrayList, šī klase atbalsta arī visu veidu objektu uzglabāšanu. |
| Manipulēšana ArrayList aizņem vairāk laika iekšējās ieviešanas dēļ. Ikreiz, kad mēs noņemam elementu, iekšēji masīvs tiek šķērsots un atmiņas biti tiek pārvietoti. | Manipulēšana ar LinkedList aizņem mazāk laika, salīdzinot ar ArrayList, jo divkārši saistītā sarakstā nav atmiņas bitu pārvietošanas koncepcijas. Saraksts tiek šķērsots un tiek mainīta atsauces saite. |
| Šī klase ievieš saraksta saskarni. Tāpēc tas darbojas kā saraksts. | Šī klase ievieš gan saskarni List, gan deque interfeisu. Tāpēc tas var darboties kā saraksts un deque. |
| Šī klase darbojas labāk, ja lietojumprogramma pieprasa saglabāt datus un piekļūt tiem. | Šī klase darbojas labāk, ja lietojumprogramma pieprasa manipulēt ar saglabātajiem datiem. |
Plašāku informāciju skatiet rakstā - ArrayList vs LinkedList Java
10. Kas ir iterators?
Java kolekcijas ietvars izmanto iteratorus, lai pa vienam izgūtu elementus. Šis iterators ir universāls, jo to var izmantot ar jebkura veida kolekcijas objektiem. Izmantojot Iteratoru, mēs varam veikt gan lasīšanas, gan noņemšanas darbības. Šī ir uzlabota Enumeration versija, kurai ir pievienoti noņemšanas elementi.
Uzskaitot elementus visās Collection ietvarā ieviestās saskarnes, piemēram, Iestatīt , Saraksts , Rinda , Par ko , un visām ieviestajām Map klasēm, ir jāizmanto iterators. Vienīgais kursors, kas pieejams visai kolekcijas sistēmai, ir iterators. Izmantojot iterator() metodi kolekcijas saskarnē, varat izveidot iteratora objektu.
Sintakse:
Iterator itr = c. iterator ();>
Piezīme: Šeit c ir jebkurš kolekcijas objekts. itr ir Iterator interfeisa tipa un attiecas uz c.
Plašāku informāciju skatiet rakstā - Iteratori Java valodā
11. Kāda ir atšķirība starp iteratoru un uzskaitījumu?
Galvenā atšķirība starp iteratoru un uzskaitīšanu ir tā, ka iteratoriem ir noņemšanas () metode, bet uzskaitījumiem nav. Tādējādi, izmantojot Iteratoru, mēs varam manipulēt ar objektiem, pievienojot un noņemot tos no kolekcijām. Tā kā uzskaitīšana var tikai šķērsot objektus un tos ienest, tā darbojas kā tikai lasāms interfeiss.
Plašāku informāciju skatiet rakstā - Atšķirība starp iteratoru un uzskaitījumu
12. Kāda ir atšķirība starp sarakstu un komplektu Java?
Galvenā atšķirība starp sarakstu un kopu ir tā, ka sarakstā var būt dublēti elementi, savukārt komplektā ir tikai unikāli elementi. Saraksts ir sakārtots, un tajā tiek uzturēta tā objekta secība, kuram tie ir pievienoti. Komplekts nav pasūtīts.
| Saraksts | Iestatīt |
|---|---|
| Saraksts ir indeksēta secība. | Kopa ir neindeksēta secība. |
| Sarakstā ir atļauti elementu dublikāti | Komplektā nav atļauts dublēt elementus. |
| Var piekļūt elementiem pēc to atrašanās vietas. | Pozīcijas piekļuve elementiem nav atļauta. |
| Var saglabāt vairākus nulles elementus. | Null elementus var saglabāt tikai vienu reizi. |
| Sarakstu ieviešanas ir ArrayList, LinkedList, Vector, Stack | Kopu ieviešanas ir HashSet, LinkedHashSet. |
Plašāku informāciju skatiet rakstā - Atšķirība starp sarakstu un komplektu Java
13. Kāda ir Java Collections Framework labākā prakse?
Tālāk ir norādītas dažas no Java kolekciju izmantošanas paraugprakses.
- Programmas jāraksta kā saskarnes, nevis implementācijas, lai mēs vēlāk varētu modificēt ieviešanu.
- Kad vien iespējams, izmantojiet Generics, lai nodrošinātu tipa drošību un izvairītos no ClassCastExceptions.
- Atbilstoša kolekcijas veida izvēle, pamatojoties uz nepieciešamību. Piemēram, ja izmērs ir fiksēts, mēs varētu vēlēties izmantot masīvu, nevis masīvu sarakstu. Atkārtojot karti, mums vajadzētu izmantot LinkedHashMap. Komplekts ir labākais veids, kā izvairīties no dublikātiem.
- Izmantojiet JDK nodrošinātās nemainīgās klases kā atslēgas programmā Map, lai izvairītos no hashCode() un equals() ieviešanas.
- Lai palielinātu koda lasāmību, mums vajadzētu izmantot isEmpty(), nevis atrast kolekcijas lielumu un salīdzināt to ar nulli.
- Tā vietā, lai rakstītu savu ieviešanu, izmantojiet utilīta klasi Kolekcijas, lai iegūtu tikai lasāmas, sinhronizētas vai tukšas kolekcijas. Tas uzlabo koda atkārtotu izmantošanu, vienlaikus nodrošinot lielāku stabilitāti.
14. Kas ir prioritārā rinda Java?
PriorityQueues izmanto, lai apstrādātu objektus atbilstoši to prioritātei. Rindas darbojas pēc algoritma First-In-First-Out, taču dažreiz rindas elementi ir jāapstrādā atbilstoši to prioritātei, un šajā gadījumā tiek izmantota funkcija PriorityQueue. Prioritātes rindas ir balstītas uz prioritāšu kaudzēm.
Prioritārās rindas elementi tiek sakārtoti pēc dabiskās secības vai rindas veidošanas laikā nodrošinātā Comparator atkarībā no tā, kurš konstruktors tiek izmantots.

Prioritātes rindas Java
Deklarācija:
public class PriorityQueue extends AbstractQueue implements Serializable where E is the type of elements held in this queue>
Klase ievieš Serializable, Iterable, Collection un Queue saskarnes.
15. Kāda ir atšķirība starp sarakstu, kopu un karti java?
| Saraksts | Iestatīt | Karte |
|---|---|---|
| Saraksta interfeiss ļauj dublēt elementus | Komplektā nav atļauts dublēt elementus. | Karte neatļauj dublēt elementus |
| Sarakstā tiek saglabāta ievietošanas secība. | Komplektā netiek uzturēta ievietošanas secība. | Karte arī neuztur nekādu ievietošanas kārtību. |
| Mēs varam pievienot jebkuru nulles vērtību skaitu. | Bet komplektā gandrīz tikai viena nulles vērtība. | Karte pieļauj ne vairāk kā vienu nulles atslēgu un jebkuru nulles vērtību skaitu. |
| Saraksta ieviešanas klases ir Array List un LinkedList. | Kopu ieviešanas klases ir HashSet, LinkedHashSet un TreeSet. | Kartes ieviešanas klases ir HashMap, HashTable, TreeMap, ConcurrentHashMap un LinkedHashMap. |
Plašāku informāciju skatiet rakstā - Atšķirība starp sarakstu, iestatīšanu un karti Java
16. Kāda ir atšķirība starp Queue un Stack?
| Kaudze | Rinda |
|---|---|
| Stacks darbojas pēc LIFO principa, kas nozīmē, ka elements, kas ievietots pēdējā, būs pirmais elements, kas tiks izņemts. | Rindas darbojas pēc FIFO principa, kas nozīmē, ka pirmais ievietotais elements būs pirmais elements, kas tiks izņemts. |
| Kaudzēs ievietošana un dzēšana notiek tikai no augšas. | Rindās ievietošana notiek saraksta aizmugurē, bet dzēšana notiek saraksta priekšpusē. |
| Ievietošanas darbību sauc par push darbību. | Ievietošanas darbību sauc par rindas darbību. |
| Dzēšanas darbību sauc par pop operāciju. | Dzēšanas darbību sauc par izslēgšanas darbību. |
| Kaudzītes augšdaļa vienmēr norāda uz pēdējo saraksta elementu, kas ir vienīgais rādītājs, ko izmanto, lai piekļūtu sarakstam. | Lai piekļūtu rindām, tiek saglabāti divi rādītāji. Priekšējais rādītājs norāda uz pirmo ievietoto elementu, bet aizmugurējais rādītājs norāda uz pēdējo ievietoto elementu. |
17. Kas ir BlockingQueue Java?
Java BlockingQueue saskarne ir pievienota Java 1.5 kopā ar dažādām citām vienlaicīgām utilītu klasēm, piemēram, ConcurrentHashMap, Counting Semaphore, CopyOnWriteArrrayList u.c. BlockingQueue saskarne atbalsta plūsmas kontroli (papildus rindai), ieviešot bloķēšanu, ja BlockingQueu ir pilna vai tukša.
Pavediens, kas mēģina ievietot rindā elementu pilnā rindā, tiek bloķēts, līdz kāds cits pavediens atdala vietu rindā, noņemot vienu vai vairākus elementus no rindas vai pilnībā notīrot rindu. Tāpat tas bloķē pavedienu, kas mēģina dzēst no tukšas rindas, līdz daži citi pavedieni ievieto vienumu. BlockingQueue nepieņem nulles vērtību. Ja mēs mēģinām ievietot rindā nulles vienumu, tas izmet NullPointerException.
BlockingQueue izmantošana

Bloķēšanas rinda Java
Bloķēšanas rindas hierarhija

Bloķēšanas rindas hierarhija Java
Deklarācija:
public interface BlockingQueue extends Queue>
Šeit, UN ir kolekcijā saglabāto elementu veids.
Plašāku informāciju skatiet rakstā - BlockingQueue interfeiss Java
18. Kas ir hashCode()?

Attēls, lai demonstrētu Java hash kodu
Metode hashCode() atgriež hashcode vērtību kā veselu skaitli. Tas ir definēts Java Object klasē, kas aprēķina doto ievades objektu jaucējvērtības. Hashkoda vērtība galvenokārt tiek izmantota uz jaukšanu balstītās kolekcijās, piemēram, HashMap, HashSet, HashTable utt. Šī metode ir jāignorē katrā klasē, kas ignorē vienāds() metodi.
Sintakse :
public int hashCode() // This method returns the hash code value // for the object on which this method is invoked.>
Plašāku informāciju skatiet rakstā - equals() un hashCode() metodes Java
19. Java kolekcijas ietvarā atšķiriet ArrayList un Vector.
Krājumu intervijās šis jautājums tiek bieži uzdots; Tomēr Vector ir sinhronizēts, bet ArrayList nav. ArrayList ir ātrāks nekā Vector. Ja nepieciešams, ArrayList masīva lielums tiek palielināts par 50%, savukārt Vector kapacitāte tiek dubultota, kad vien tas ir nepieciešams.

Masīvu saraksts pret vektoru java
| ArrayList | Vektors |
|---|---|
| ArrayList nav sinhronizēts | Vektors ir sinhronizēts. |
| ArrayList lielums tiek palielināts līdz 50% no pašreizējā masīva lieluma, ja elementu skaits pārsniedz tā ietilpību. | ArrayList lielums tiek palielināts līdz 100% no pašreizējā masīva lieluma, ja elementu skaits pārsniedz tā ietilpību. |
| ArrayList ir ātrs, jo tas nav sinhronizēts. | Vektors ir lēnāks, jo tas ir sinhronizēts. |
| Iteratora saskarne tiek izmantota elementu šķērsošanai | Lai šķērsotu vektoru, var izmantot iteratora saskarni vai uzskaitījumu. |
Plašāku informāciju skatiet rakstā - Vector vs ArrayList Java
20. Atšķiriet Iterator un ListIterator.
| Iterators | ListIterator |
|---|---|
| Var šķērsot kolekcijā esošos elementus tikai virzienā uz priekšu. | Var šķērsot kolekcijā esošos elementus gan uz priekšu, gan atpakaļ. |
| Palīdz šķērsot karti, sarakstu un komplektu. | Var šķērsot tikai sarakstu, nevis pārējos divus. |
| Indeksus nevar iegūt, izmantojot Iteratoru. | Tam ir tādas metodes kā nextIndex() un previousIndex(), lai jebkurā laikā, šķērsojot sarakstu, iegūtu elementu indeksus. |
| Nevar mainīt vai aizstāt kolekcijā esošos elementus | Mēs varam modificēt vai aizstāt elementus, izmantojot komplektu (E e) |
Plašāku informāciju skatiet rakstā - Atšķirība starp Iteratoru un ListIteratoru
21. Kāda ir atšķirība starp iteratoru un uzskaitījumu?
Iterators: Tas ir universāls iterators, jo mēs to varam lietot jebkuram kolekcijas objektam. Izmantojot iteratoru, mēs varam veikt gan lasīšanas, gan noņemšanas darbības.
Sintakse:
// Here 'c' is any Collection object. itr is of // type Iterator interface and refers to 'c' Iterator itr = c.iterator();>
Uzskaitījums: Uzskaitījums (vai enum) ir lietotāja definēts datu tips. To galvenokārt izmanto, lai piešķirtu nosaukumus integrālajām konstantēm, nosaukumi padara programmu viegli lasāmu un uzturējamu.
Sintakse:
// A simple enum example where enum is declared // outside any class (Note enum keyword instead of // class keyword) enum Color { RED, GREEN, BLUE; }> | Iterators | Uzskaitījums |
|---|---|
| Iterators ir universāls kursors, jo tas ir piemērojams visām kolekcijas klasēm. | Uzskaitīšana nav universāls kursors, jo tas attiecas tikai uz mantotajām klasēm. |
| Iteratoram ir noņemšanas () metode. | Uzskaitīšanai nav noņemšanas() metodes. |
| Iterators var veikt izmaiņas (piemēram, izmantojot metodi remove(), kas pārvietošanas laikā noņem elementu no kolekcijas). | Uzskaitīšanas interfeiss darbojas kā tikai lasāms interfeiss, kolekcijā nevar veikt nekādas modifikācijas, šķērsojot kolekcijas elementus. |
| Iterators nav mantota saskarne. Iteratoru var izmantot HashMap, LinkedList, ArrayList, HashSet, TreeMap un TreeSet šķērsošanai. | Uzskaitīšana ir mantota saskarne, kas tiek izmantota, lai šķērsotu Vector un Hashtable. |
Plašāku informāciju skatiet rakstā - Atšķirība starp iteratoru un uzskaitījumu
22. Kādas ir Java Hashmap iespējas?
HashMap ir līdzīgs HashTable, taču tas nav sinhronizēts. Tas ļauj mums saglabāt arī nulles atslēgas, taču jābūt tikai vienam nulles atslēgas objektam un var būt neierobežots skaits nulles vērtību. Šī klase negarantē kartes secību. Lai izmantotu šo klasi un tās metodes, jums ir jāimportē java.util. HashMap paka vai tās superklase.

HashMap Java valodā
Sintakse:
public class HashMap extends AbstractMap implements Map, Cloneable, Serializable>
Parametri: Tam nepieciešami divi parametri, proti, šādi:
- Šīs kartes uzturēto atslēgu veids (K)
- Kartēto vērtību veids (V)
Plašāku informāciju skatiet rakstā - HashMap Java ar piemēriem
23. Kas ir kolekcijas saskarnes?
The Kolekcija interfeiss ir Java Collections Framework dalībnieks. Tā ir daļa no java.util iepakojums. Tā ir viena no kolekcijas hierarhijas saknes saskarnēm. Kolekcijas saskarni tieši neievieš neviena klase. Tomēr tas tiek ieviests netieši, izmantojot tā apakštipus vai apakšsaskarnes, piemēram, sarakstu, rinda un kopa.
Piemēram, HashSet klase īsteno saskarni Set, kas ir kolekcijas interfeisa apakšinterfeiss. Ja kolekcijas implementācija neīsteno noteiktu darbību, tai ir jādefinē atbilstošā metode UnsupportedOperationException izmešanai.
Kolekcijas hierarhija:

Kolekcijas interfeiss Java
24. Izskaidrojiet saraksta saskarni.

Klases interfeiss Java valodā
Java programmā List interfeiss ļauj lietotājam saglabāt sakārtotu objektu kolekciju. Saraksts ir kolekcijas bērnu interfeiss. Kolekcijā saraksts ir sakārtota objektu kolekcija, kurai var būt vērtību dublikāti. Tā kā saraksts saglabā ievietošanas secību, tas nodrošina pozicionālu piekļuvi un ievietošanu, kas ļauj arī dublēt vērtības.
Sintakse:
public interface List extends Collection ;>
Šo saraksta saskarni ievieš dažādas klases, piemēram, ArrayList, Vector, Stack utt. Tā kā visas apakšklases īsteno sarakstu, mēs varam izveidot saraksta objektu ar jebkuru no šīm klasēm.
Piemērs:
java matemātika
List al = jauns ArrayList ();
Saraksts ll = jauns LinkedList ();
Saraksts v = jauns vektors ();Kur T ir objekta tips

Masīvu saraksts Java
Klases, kas ievieš saskarni List, ir šādas:
- ArrayList
- LinkedList
- Vektors
- Kaudze
25. Uzrakstiet programmu, lai ar asList() metodi pārvērstu doto masīvu kolekcijā.
Lai pārveidotu uz masīvu balstītus datus par kolekciju, mēs varam izmantot java.util.Arrays klasē. Šī klase nodrošina statisku metodi asList(T… a), kas pārvērš masīvu kolekcijā.
Java
// Convert an Array into Collection in Java> // import java util library> import> java.util.*;> > // class for writing logic of the problem> public> class> ArrayToCollection {> >public> static> void> main(String args[])> >{> >// array input> >String students[] = {>'Kamlesh'>,>'Abhay'>,> >'Abhishek'>,>'Shivansh'> };> > >// printing input elements for comparison> >System.out.println(>'Array input: '> >+ Arrays.toString(students));> > >// converting array into Collection> >// with asList() function> >List studentList = Arrays.asList(students);> > >// print converted elements> >System.out.println(>'Converted elements: '> >+ studentList);> >}> }> |
>
>Izvade
Array input: [Kamlesh, Abhay, Abhishek, Shivansh] Converted elements: [Kamlesh, Abhay, Abhishek, Shivansh]>
26. Atšķiriet HashSet un HashMap
| HashSet | HashMap |
|---|---|
| HashSet ievieš Set saskarni | HashMap ievieš kartes saskarni |
| Dublikāti nav atļauti | Jā, vērtību dublikāti ir atļauti, bet nav atļauts dublēt atslēgas |
| HashSet ir atļautas fiktīvas vērtības. | HashMap nav atļautas fiktīvas vērtības. |
| Pievienošanas darbības laikā ir nepieciešams viens objekts | Pievienošanas darbības laikā ir nepieciešami 2 objekti |
| Ātrums ir salīdzinoši lēnāks nekā HashMap | Ātrums ir salīdzinoši ātrāks nekā HashSet, jo šeit ir izmantota jaukšanas tehnika. |
| Ir viena nulles vērtība | Viena nulles atslēga un jebkurš nulles vērtību skaits |
| Ievietošanai tiek izmantota metode Add(). | Ievietošanai tiek izmantota put () metode. |
Plašāku informāciju skatiet rakstā - Atšķirība starp HashMap un HashSet
27. Atšķiriet HashSet un HashTable.
| HashSet | HashTable |
|---|---|
| HashSet pieļauj NULL elementus | HashTable neļauj izmantot NULL elementus. |
| Objekti, kurus ievietojat HashSet, netiek garantēti, ka tiks ievietoti tādā pašā secībā. Objekti tiek ievietoti, pamatojoties uz to jaucējkodu. LinkedHashSet var izmantot, lai uzturētu kārtību. | HashTable neuztur ievietošanas secību. |
| HashSet nav sinhronizēts, bet to var sinhronizēt ārēji. | HashTable ir sinhronizēta. |
| Add() metode tiek izmantota, lai ievietotu HashSet | Put() metode tiek izmantota ievietošanai HashTable |
28. Kāds ir noklusējuma slodzes koeficienta lielums jaukšanas kolekcijā?
Palielinoties slodzes koeficientam, jauda palielinās tā, ka HashMap darbības sarežģītība paliek O(1), ja pašreizējā elementa attiecība pret sākotnējo jaudu pārsniedz slieksni. O(1) darbības sarežģītības nozīme nozīmē, ka izguves un ievietošanas operācijām ir nepieciešams nemainīgs laiks. Noklusējuma slodzes koeficienta lielums ir 0,75 . Noklusējuma jauda tiek aprēķināta, sākotnējo jaudu reizinot ar slodzes koeficientu.
Plašāku informāciju skatiet rakstā - Slodzes koeficients HashMap programmā Java ar piemēriem
Java kolekcijas intervijas jautājumi pieredzējušiem
29. Kāda ir atšķirība starp Comparable un Comparator Java?
Java nodrošina divas saskarnes objektu šķirošanai, izmantojot klases datu dalībniekus:
- Salīdzināms
- Salīdzinātājs
| Salīdzināms | Salīdzinātājs |
|---|---|
| Salīdzināmā saskarne nodrošina vienu šķirošanas secību. | Salīdzinājuma saskarne nodrošina vairākas šķirošanas secības. |
| Faktisko klasi modificē salīdzināms interfeiss | Salīdzinājuma saskarne nemaina faktisko klasi. |
| Elementu kārtošanai izmanto metodi salīdzinātTo(). | Elementu kārtošanai tiek izmantota salīdzināšanas () metode. |
| Salīdzināms ir pieejams pakotnē java.lang | Salīdzinātājs ir pieejams pakotnē java.util |
Plašāku informāciju skatiet rakstā - Salīdzināms vs salīdzinājums Java
30. Kāda ir atšķirība starp bezatteices un bezatteices?
Java iteratori tiek izmantoti kolekcijas objektu atkārtošanai. Fail-Fast iteratori uzreiz met ConcurrentModificationException ja ir a strukturāla modifikācija no kolekcijas. Strukturālās modifikācijas nozīmē jebkura elementa pievienošanu vai noņemšanu no kolekcijas, kamēr pavediens atkārtojas šajā kolekcijā. Iterators klasēs ArrayList un HashMap ir daži ātrā Iterator piemēri.
| Fail-Fast | Bezatteices |
|---|---|
| ConcurrentModificationException tiek izmests, modificējot objektu iterācijas procesa laikā. | Izņēmums netiek izmests |
| Fail-Fast procesa laikā ir nepieciešams mazāk atmiņas. | Fail-Safe iterator procesa laikā prasa vairāk atmiņas. |
| Klona objekts netiek izveidots iterācijas procesa laikā. | Iterācijas procesa laikā tiek izveidots klona objekts vai kopija. |
| Fail-Fast neļauj veikt izmaiņas iterācijas procesa laikā. | Fail-Safe ļauj veikt izmaiņas iterācijas procesa laikā. |
| Fail-Fast ir ātrs, | Fail-Safe ir nedaudz lēnāks nekā ātrs. |
| Piemēri: ArrayList, Vector, HashMap, HashSet utt. | Piemēri: ConcurrentHashMap, CopyOnWriteArrayList utt. |
Plašāku informāciju skatiet rakstā - Fail Fast un Fail Safe iterators Java
31. Uzrakstiet programmu saraksta atkārtošanai, izmantojot lambda izteiksmi.
Iterāciju var veikt, izmantojot a lambda izteiksme.
Sintakse:
list_name.forEach(variable->{//koda bloks})> Java
// Java Program to iterate over a List> // using forEach()> > // Importing all classes of> // java.util method> import> java.util.*;> > // Class> class> GFG {> > >// Main driver method> >public> static> void> main(String args[])> >{> >// Creating an ArrayList> >List l =>new> ArrayList();> > >// Adding elements to the List> >// Custom inputs> >l.add(>'Geeks'>);> >l.add(>'for'>);> >l.add(>'Geeks'>);> > >// Lambda expression printing all elements in a List> >l.forEach((temp) ->{ System.out.println(temp); });>> }> |
>
>Izvade
Geeks for Geeks>
Plašāku informāciju skatiet rakstā - Atkārtojiet, izmantojot sarakstu Java
32. Kas ir IdentityHashMap?
IdentityHashMap ievieš kartes saskarni, izmantojot Hashtable, salīdzinot atslēgas (un vērtības), izmantojot atsauces vienādību, nevis objektu vienlīdzību. Šī klase ievieš kartes saskarni, taču tā apzināti pārkāpj Map vispārējo līgumu, kas pieprasa, lai objekti tiktu salīdzināti, izmantojot vienāds () metodi. Šī klase tiek izmantota, ja lietotājs ļauj salīdzināt objektus, izmantojot atsauces. Tas pieder java.util pakotnei.
Plašāku informāciju skatiet rakstā - IdentityHashMap klase Java
33. Uzrakstiet programmu Java valodā, lai parādītu HashTable saturu, izmantojot uzskaiti.
Hashtable klase ievieš hash tabulu, kas kartē atslēgas uz vērtībām. Jebkuru objektu, kas nav nulle, var izmantot kā atslēgu vai vērtību. Lai veiksmīgi saglabātu un izgūtu objektus no hashtable, objektiem, kas tiek izmantoti kā atslēgas, ir jāīsteno hashCode metode un vienādības metode. Zemāk ir programma, kas parāda hashTable saturu, izmantojot uzskaitījumu:
Java
// Java Program to Demonstrate Getting Values> // as an Enumeration of Hashtable class> > import> java.io.*;> import> java.util.Enumeration;> import> java.util.Hashtable;> > // Main class> // EnumerationOnKeys> public> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating an empty hashtable> >Hashtable hash> >=>new> Hashtable();> > >// Inserting key-value pairs into hash table> >// using put() method> >hash.put(>1>,>'Geeks'>);> >hash.put(>2>,>'for'>);> >hash.put(>3>,>'Geeks'>);> > >// Now creating an Enumeration object> >// to read elements> >Enumeration e = hash.elements();> > >// Condition holds true till there is> >// single key remaining> > >// Printing elements of hashtable> >// using enumeration> >while> (e.hasMoreElements()) {> > >// Printing the current element> >System.out.println(e.nextElement());> >}> >}> }> |
>
>Izvade
Geeks for Geeks>
34. Uzrakstiet programmu Java, lai iegūtu HashMap esošo vērtību kolekcijas skatu.
Java HashMap klasei ir metode java.util.HashMap.values(), lai izveidotu kolekcijas no HashMap vērtībām. Tas būtībā atgriež HashMap vērtību kolekcijas skatu.
Java
// Java code to illustrate the values() method> import> java.util.*;> > public> class> Hash_Map_Demo {> >public> static> void> main(String[] args)> >{> > >// Creating an empty HashMap> >HashMap hash_map> >=>new> HashMap();> > >// Mapping string values to int keys> >hash_map.put(>0>,>'Welcome'>);> >hash_map.put(>1>,>'to'>);> >hash_map.put(>2>,>'Geeks'>);> >hash_map.put(>3>,>'4'>);> >hash_map.put(>4>,>'Geeks'>);> > >// Displaying the HashMap> >System.out.println(>'Initial Mappings are: '> >+ hash_map);> > >// Using values() to get the set view of values> >System.out.println(>'The collection is: '> >+ hash_map.values());> >}> }> |
>
>Izvade
Initial Mappings are: {0=Welcome, 1=to, 2=Geeks, 3=4, 4=Geeks} The collection is: [Welcome, to, Geeks, 4, Geeks]> Plašāku informāciju skatiet rakstā - HashMap vērtības() metode Java valodā
35. Uzrakstiet programmu, lai apvienotu divus ArrayList vienā ArrayList.
Ņemot vērā divus Java ArrayLists, mūsu uzdevums ir pievienoties šiem ArrayLists.
Java
// Java program to demonstrate> // How to join ArrayList> > import> java.util.*;> > public> class> GFG {> >public> static> void> main(String args[])> >{> > >ArrayList list_1 =>new> ArrayList();> > >list_1.add(>'Geeks'>);> >list_1.add(>'For'>);> >list_1.add(>'ForGeeks'>);> > >// Print the ArrayList 1> >System.out.println(>'ArrayList 1: '> + list_1);> > >ArrayList list_2 =>new> ArrayList();> > >list_2.add(>'GeeksForGeeks'>);> >list_2.add(>'A computer portal'>);> > >// Displaying the ArrayList 2> >System.out.println(>'ArrayList 2: '> + list_2);> > >// using Collection.addAll() method to join two> >// arraylist> >list_1.addAll(list_2);> > >// Print the joined ArrayList> >System.out.println(>'Joined ArrayLists: '> + list_1);> >}> }> |
>
>Izvade
ArrayList 1: [Geeks, For, ForGeeks] ArrayList 2: [GeeksForGeeks, A computer portal] Joined ArrayLists: [Geeks, For, ForGeeks, GeeksForGeeks, A computer portal]>
Plašāku informāciju skatiet rakstā - Pievienojieties diviem ArrayLists Java
36. Kā jūs varat sinhronizēt ArrayList Java?
Izmantojot metodi Collections.synchronizedList(), mēs varam sinhronizēt savas kolekcijas Java. SynchronizedList() atgriež sinhronizētu (pavedieniem drošu) sarakstu, ko atbalsta atlase.
Java
// Java program to show synchronization of ArrayList> import> java.io.*;> import> java.util.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >// Non Synchronized ArrayList> >List list =>new> ArrayList();> > >list.add(>'Eat'>);> >list.add(>'Coffee'>);> >list.add(>'Code'>);> >list.add(>'Sleep'>);> >list.add(>'Repeat'>);> > >// Synchronizing ArrayList in Java> >list = Collections.synchronizedList(list);> > >// we must use synchronize block to avoid> >// non-deterministic behavior> >synchronized> (list)> >{> >Iterator it = list.iterator();> >while> (it.hasNext()) {> >System.out.println(it.next());> >}> >}> >}> }> |
>
>Izvade
Eat Coffee Code Sleep Repeat>
37. Kas ir rekvizītu klase Java valodā?
Rekvizītu klase ir Hashtable apakšklase. Rekvizītu klasē tiek saglabāts to vērtību saraksts, kuru atslēga ir virkne un kuras vērtība arī ir virkne. Rekvizīti var definēt citus rekvizītu klašu sarakstus, taču noklusējuma vērtība ir rekvizīti.
Īpašību klases iezīmes:
- Īpašums ir Hashtable apakšklase.
- Fails Rekvizīti tiek izmantots, lai saglabātu un izgūtu virknes datu tipu vērtību sarakstam, kur atslēga ir virkne un vērtība ir arī virkne.
- Ja sākotnējā rekvizītu sarakstā nav noteikta atslēgas rekvizīta, tā vietā tiks meklēts noklusējuma rekvizītu saraksts.
- Objektus var koplietot ar vairākiem pavedieniem bez ārējas sinhronizācijas.
- Rekvizītu klasi var izmantot, lai izgūtu sistēmas īpašības.
Plašāku informāciju skatiet rakstā - Rekvizītu klase Java valodā
38. Kas notiks, ja izmantosit HashMap daudzpavedienu Java lietojumprogrammā?
Vairāku pavedienu vidē, ja vairāki pavedieni strukturāli maina karti, piemēram, pievieno, noņem vai maina kartējumus, HashMap iekšējā datu struktūra var tikt bojāta un var būt dažas trūkstošās saites, nepareizi ieraksti un pati karte. kļūt pilnīgi bezjēdzīgi. Tādējādi nevajadzētu izmantot HashMap vienlaicīgā lietojumprogrammā; tā vietā izmantojiet ConcurrentHashMap vai Hashtable, kas ir droša pavedienam. ConcurrentHashMap ietver visas Hashtable metodes, kā arī pilnīgu izguves un atjauninājumu vienlaicīgumu.
Kā ThreadSafeConcurrentHashMap kļuva par pavedienu drošu?
- java.util.Concurrent.ConcurrentHashMap klase nodrošina pavedienu drošību, sadalot karti segmentos, kas ļauj bloķēšanu veikt tikai vienu reizi segmentā, t.i., vienu reizi katram pavedienam.
- Lasīšanas darbībai programmā ConcurrentHashMap nav nepieciešama bloķēšana.
Plašāku informāciju skatiet rakstā - Kā ConcurrentHashMap panāk pavedienu drošību Java?
39. Kas notiks, ja divas dažādas HashMap atslēgas atgriezīs vienu un to pašu hashcode ()?
Ja divas dažādas HashMap atslēgas atgriež vienu un to pašu jaucējkodu, tās nonāks vienā segmentā; tāpēc notiks sadursmes. n sadursmes gadījumā, t.i., divu vai vairāku mezglu indekss ir vienāds, mezgli tiek savienoti ar saišu sarakstu, t.i., uz otro mezglu atsaucas pirmais mezgls, bet uz trešo – otrais utt.
Plašāku informāciju skatiet rakstā - HashMap iekšējā darbība Java
40. Kas ir WeakHashMap?
WeakHashMap ievieš kartes saskarni. Atšķirībā no HashMap, WeakHashMap ļauj savākt atkritumus pat tad, ja objekts, kas norādīts kā atslēga, nesatur nekādas atsauces, lai gan tas ir saistīts ar WeakHashMap. Citiem vārdiem sakot, atkritumu savācējs ir labāks par WeakHashMap.
Plašāku informāciju skatiet rakstā - Hashmap vs WeakHashMap Java
41. Kas ir UnsupportedOperationException?
API vai sarakstu ieviešanas kontekstā UnsupportedOperationException ir izplatīts izņēmums. Izņēmums tiek izmests, ja pieprasīto darbību nevar veikt. Šī klase ir Java Collections Framework dalībniece.
Sintakse:
public class UnsupportedOperationException extends RuntimeException>
Plašāku informāciju skatiet rakstā - UnsupportedOperationException
42. Kā padarīt kolekciju tikai lasāmu Java?
Tikai lasāmas kolekcijas izveide ietver objekta ierobežošanu, lai tikai ienestu datus, nevis pievienotu vai noņemtu datus. Java ir dažādas metodes dažādiem kolekcijas veidiem, piemēram, unmodifiableCollection(), unmodifiableMap(), ununmodifiableSet() utt. java.util. Kolekciju klase definē visas metodes. Metode unmodifiableCollection() izveido tikai lasāmu kolekciju. Tam nepieciešama atsauce uz Kolekciju klasi. Ja mums ir Set Interface objekts, mēs varam to izmantot ununmodifiableSet() lai padarītu to tikai lasāmu.
Plašāku informāciju skatiet rakstā - Kā padarīt kolekciju tikai lasāmu Java?
43. Atšķirība starp PriorityQueue un TreeSet Java?
| PriorityQueue | TreeSet |
|---|---|
| PriorityQueue ir pieejams JDK 1.5 versijā. | TreeSet ir pieejams JDK 1.4 versijā. |
| PriorityQueue izmantotā datu struktūra ir Queue | TreeSet izmantotā datu struktūra ir Set. |
| Ir atļauti elementu dublikāti. | Elementu dublikāti nav atļauti. |
| Izņemot saknes elementu, pārējie elementi neatbilst noteiktai secībai PriorityQueue. | Programmā TreeSet visi elementi paliek sakārtotā secībā. |
| Izmantojot PriorityQueue, mēs varam izgūt lielāko vai mazāko elementu O(1) laikā. | TreeSet nenodrošina veidu, kā izgūt lielāko vai mazāko elementu O(1) laikā, taču, tā kā tie ir sakārtoti, tas iegūst pirmo vai pēdējo elementu O(1) laikā. |
Plašāku informāciju skatiet rakstā - Atšķirība starp PriorityQueue un TreeSet
44. Kas ir dimanta operators Java?
Dimanta operatori tiek izmantoti, lai vienkāršotu sugas vārdu lietošanu, veidojot objektus, vienlaikus izvairoties no nepārbaudītiem brīdinājumiem programmā. Kad Java 7 tika ieviests operators Diamond, mēs varam izveidot objektu, neminot vispārīgo veidu izteiksmes labajā pusē, kā parādīts tālāk.
Sintakse:
List list = new ArrayList();>
Plašāku informāciju skatiet rakstā - Dimanta operators
45. Kā TreeMap darbojas Java?
TreeMap saglabā atslēgu un vērtību pārus, bet TreeMap kārto atslēgas augošā, nevis dilstošā secībā, piemēram, HashMap. Atkarībā no izmantotā konstruktora TreeMap tiks sakārtots vai nu pēc taustiņiem, vai pēc salīdzinājuma. Programmā TreeMap elementi tiek kārtoti, pamatojoties uz sarkanmelnu koku. Sarkanmelns koks ir pašbalansējošs binārais meklēšanas koks, kurā katram mezglam ir papildu bits, un šis bits bieži tiek interpretēts kā krāsa (sarkana vai melna). Šīs krāsas tiek izmantotas, lai nodrošinātu, ka koks saglabājas līdzsvarots ievietošanas un dzēšanas laikā.

Mezgla struktūra Java valodā
Plašāku informāciju skatiet rakstā - TreeMap iekšējā darbība Java
46. Uzskaitiet veidus, kā atkārtot karti pakalpojumā java?
HashMap klase nodrošina Java kartes saskarni, saglabājot datus (atslēgas, vērtības) pāros un piekļūstot tiem, izmantojot cita veida indeksu. Lai izmantotu šo klasi, ir nepieciešams importēt java.util.HashMap paka vai tās superklase.
Ir daudz veidu, kā atkārtot HashMap, no kuriem 5 ir norādīti tālāk:
- Atkārtojiet, izmantojot HashMap EntrySet, izmantojot iteratorus.
- Atkārtojiet, izmantojot HashMap KeySet, izmantojot Iteratoru.
- Atkārtojiet HashMap, izmantojot katrai cilpai.
- Iterēšana, izmantojot HashMap, izmantojot Lambda izteiksmes.
- Pārlūkojiet HashMap, izmantojot Stream API.
Plašāku informāciju skatiet rakstā - Kā atkārtot HashMap Java
47. Kas ir CopyOnWriteArrayList Java?

CopyOnWriteArrayList Java
JDK 1.5 ieviesa uzlabotu ArrayList versiju ar nosaukumu CopyOnWriteArrayList, kurā visas modifikācijas (pievienošana, iestatīšana, noņemšana utt.) tiek ieviesta ar jaunu kopiju. To var atrast vietnē java.util.concurrent. Tā ir datu struktūra, kas izveidota izmantošanai vienlaicīgā vidē. Uz pavedieniem balstītā vidē CopyOnWriteArrayList ir paredzēts biežai lasīšanai un retai atjaunināšanai. CopyOnWriteArrayList ir pavedieniem droša ArrayList versija.
Plašāku informāciju skatiet rakstā - CopyOnWriteArrayList Java
48. Kas ir EnumMap Java?
EnumMap ir kartes interfeisa ieviešana, kas raksturīga uzskaitīšanas veidiem. EnumMap klase ir Java Collections Framework dalībnieks un nav sinhronizēta. Tas paplašina AbstractMap un ievieš kartes saskarni java. EnumMap pieder java.util pakotnei.
Sintakse:
publiskā klase EnumMap
paplašina AbstractMap īsteno Serializable, Cloneable // K ir jāpaplašina Enum, kas ievieš prasību, ka atslēgām ir jābūt norādītā enum tipa.
Parametri:
- Atslēgas objekta tips
- Vērtības objekta tips

EnumMap Java
Plašāku informāciju skatiet rakstā - EnumMap klase Java
49. Kā Hashmap darbojas iekšēji?
HashMap darbojas pēc jaukšanas principa. HashMap satur mezglu masīvu, un Node var attēlot klasi ar šādiem objektiem:
- int hash
- K taustiņš
- V vērtība
- Mezgls nākamais
HashMap iekšējā darbība:
- Jaukšana
- Spaiņi
- Indeksa aprēķināšana programmā Hashmap
Plašāku informāciju skatiet rakstā - HashMap iekšējā darbība Java
piecdesmit. Kāpēc iterators hashmapā tiek uzskatīts par ātru?
Fast-fast iteratori nekavējoties izmet vienlaicīgu modifikāciju izņēmumus, ja kāds pavediens no ārpuses mēģina modificēt kolekciju, kurā tie atkārto. Fast-fast funkcija nodrošina, ka iterators nekavējoties neizdodas, ja tas konstatē, ka jebkādas kolekcijas modifikācijas nākotnē izraisīs anomālu darbību.
Ātri neizdodas funkcija nodrošina, ka, ja iteratoram šķiet, ka kolekcijas modificēšana jebkurā brīdī nākotnē varētu izraisīt anomālu uzvedību, tā nekavējoties neizdodas.
Piemērs:
Java
// Java code to demonstrate remove> // case in Fail-fast iterators> > import> java.io.*;> import> java.util.ArrayList;> import> java.util.Iterator;> > public> class> GFG {> >public> static> void> main(String[] args)> >{> >ArrayList arr =>new> ArrayList();> >arr.add(>1>);> >arr.add(>2>);> >arr.add(>3>);> >arr.add(>4>);> >arr.add(>5>);> > >Iterator it = arr.iterator();> >while> (it.hasNext()) {> >if> (it.next() ==>2>) {> >// will not throw Exception> >it.remove();> >}> >}> > >System.out.println(arr);> > >it = arr.iterator();> >while> (it.hasNext()) {> >if> (it.next() ==>3>) {> >// will throw Exception on> >// next call of next() method> >arr.remove(>3>);> >}> >}> >}> }> |
>
>
Izvade:
[1, 3, 4, 5] Exception in thread 'main' java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) at FailFastExample.main(FailFastExample.java:28)>
Secinājums
Java kolekcijas ir svarīgi saprast Java izstrādātājiem vai programmētājiem, jo Java tiek plaši izmantota dažādās nozarēs. Izstrādātājiem ir svarīgi labi izprast Java kolekciju pamatjēdzienus. Java ir viena no visplašāk izmantotajām valodām labākajos uzņēmumos, piemēram Uber , Airbnb , Google , Netflix , Instagram , Spotify, Amazon uc Lai iekļūtu šajos uzņēmumos vai citos IT uzņēmumos, jums ir jāapgūst šie visbiežāk uzdotie Java kolekciju intervijas jautājumi, lai uzlauztu to Java balstītu tiešsaistes novērtējumu un tehnisko interviju.
Ja vēlaties praktizēt kodēšanas jautājumus, JAVA kolekcijas programmas var būt noderīgs resurss.
10 no 40
Java kolekciju intervijas jautājumi — FAQ
1. Kas ir Java interviju jautājumu kolekcijas?
Java kolekcija ir ietvars, ko izmanto objektu kolekciju glabāšanai un manipulēšanai.
2. Kādas ir 4 Java kolekcijas klases?
Java valodā ir daudz kolekciju, bet no tām visbiežāk izmantotās kolekcijas ir:
- ArrayList
- LinkedList
- HashSet
- Kaudze
3. Vai HashMap var dublēt atslēgas?
Nē, HashMap nevar būt dublētās atslēgas. Tā kā HashMap ir viena no Java kolekcijām, tā saglabā vērtību atslēgas vērtības formā, un katrai atslēgai ir pievienota sava vērtība. Tātad, tā kā nevienai atslēgai nevar būt divas vērtības, tas nozīmē, ka HashMap mums nevar būt atslēgu dublikāti.
4. Kāpēc masīvs nav kolekcija?
Masīvs nav kolekcija, tas viss ir saistīts ar kolekciju un masīvu funkcionalitātes atšķirību, no kurām dažas ir minētas tālāk:
- Masīva lielumu nevar mainīt pēc deklarēšanas
- Masīvi var saturēt tikai viendabīgus datu tipu elementus.
- Masīvā var būt gan primitīvi datu tipi, gan objekti, turpretim kolekcijās var būt tikai iesaiņojuma objekti.