80 Java Kokoelmien haastattelukysymykset ja vastaukset (2026)
Java Kokoelmien haastattelukysymyksiรค ja vastauksia fuksilaisille
1) Mitรค kehys sisรคltรครค Java?
Kehys on suosittu ja valmis arkkitehtuuri, joka sisรคltรครค joukon luokkia ja rajapintoja.
2) Missรค kokoelmakehys on Java?
Kokoelmakehys on ryhmรคping luokkien ja rajapintojen joukko, jota kรคytetรครคn objektien tallentamiseen ja hallintaan. Se tarjoaa erilaisia โโluokkia, kuten Vector, ArrayList, HashSet, Stack jne. Java Kokoelmakehystรค voidaan kรคyttรครค myรถs kรคyttรถliittymiin, kuten jono, joukko, luettelo jne.
3) Selitรค kokoelmaluokka
java.util.Collections on luokka, joka koostuu staattisista menetelmistรค, jotka toimivat kokoelmissa. Se sisรคltรครค polymorfisia algoritmeja, jotka toimivat kokoelmien, "kรครคreiden" kanssa. Tรคmรค luokka sisรคltรครค menetelmiรค algoritmeille, kuten binรครคrilajittelu, haku, sekoitus jne.
4) Mikรค on tiiviste?Code()?
HashCode() on metodi, joka palauttaa kokonaislukuisen tiivistekoodin.
5) Erota ArrayList ja Vector Java kerรคyskehys.
| ArrayList | vektori |
|---|---|
| ArrayList ei voida synkronoida. | Vektori voidaan synkronoida. |
| Se ei ole perintรถluokka. | Se on perintรถluokka. |
| Se voi kasvattaa kokoaan 50 % taulukon koosta. | Se voi kasvattaa kokoaan kaksinkertaistamalla taulukon koon. |
| ArrayList ei ole sรคikeen varma. | Vector on lankaturvallinen. |
6) Missรค ArrayList on Java?
ArrayList on tietorakenne, jota voidaan venyttรครค sisรคltรคmรครคn lisรคelementtejรค ja kutistua takaisin pienemmรคksi, kun elementtejรค poistetaan. Se on erittรคin tรคrkeรค tietorakenne, joka on hyรถdyllinen elementtien dynaamisen kรคyttรคytymisen kรคsittelyssรค.
7) Tee ero Iteratorin ja ListIteratorin vรคlillรค
Ero Iteratorin ja ListIteratorin vรคlillรค on:
| Iteraattori | ListIterator |
|---|---|
| Iteraattori voi kulkea taulukon elementtien lรคpi eteenpรคin. | ListIterator voi kulkea taulukon elementtien lรคpi sekรค taaksepรคin ettรค eteenpรคin. |
| Sitรค voidaan kรคyttรครค jonossa, luettelossa ja joukossa. | Sitรค voidaan kรคyttรครค luettelossa. |
| Se voi suorittaa vain poistotoiminnon. | Se voi suorittaa lisรคys-, poisto- ja asetustoimintoja kulkiessaan kokoelmaa. |
8) Mitรค eroa on iteraattorilla ja luettelolla?
Ero Iteratorin ja Enumerationin vรคlillรค
| Iteraattori | luettelointi |
|---|---|
| Iteraattori voi kulkea sekรค vanhojen ettรค ei-vanhojen elementtien lรคpi. | Luettelo voi kulkea vain vanhojen elementtien lรคpi. |
| Iteraattori on nopea. | Luettelo ei ole nopeaa. |
| Iteraattori on erittรคin hidas verrattuna Enumerationiin. | Luettelo on nopea verrattuna Iteratoriin. |
| Iteraattori voi suorittaa poistotoiminnon kulkiessaan kokoelmaa. | Luettelo voi suorittaa vain poikittaistoiminnon kokoelmalle. |
9) Mรครคritรค BlockingQueue
BlockingQueue on kรคyttรถliittymรค, jota kรคytetรครคn Java joka voi pidentรครค jonoa. Se tarjoaa samanaikaisuuden erilaisissa jonotoiminnoissa, kuten haussa, lisรครคmisessรค, poistamisessa jne.
Jono odottaa, ettei se ole tyhjรค, kun elementtejรค haetaan. BlockingQueue ei saa sisรคltรครค nollaelementtejรค. Tรคmรคn jonon toteutus on sรคikeen turvallista.
BlockingQueuen syntaksi on:
public interface BlockingQueue<E> extends Queue <E>
10) Selitรค ohitus equals() -metodi
Tasa-arvomenetelmรครค kรคytetรครคn kahden objektin samankaltaisuuden tarkistamiseen. Jos ohjelmoija haluaa tarkistaa kohteen ominaisuuden perusteella, se on ohitettava.
11) Mitรค eroa on Vertailevan ja Vertailun vรคlillรค?
Ero Vertailevan ja Vertailun vรคlillรค on:
| vertailukelpoinen | Vertailuryhmรคssรค |
|---|---|
| Comparable tarjoaa vertailuTo()-menetelmรคn elementtien lajitteluun Java. | Comparator tarjoaa vertaa()-menetelmรคn elementtien lajitteluun Java. |
| Vertailukelpoinen kรคyttรถliittymรค on java.lang-paketissa. | Javassa on vertailuliittymรค. hyรถdyllinen paketti. |
| Lajittelulogiikan on oltava samassa luokassa, jonka objektia aiot lajitella. | Lajittelulogiikka tulisi olla erillisessรค luokassa, jotta voidaan kirjoittaa erilaisia โโlajitteluja objektien eri attribuuttien perusteella. |
| Luokan, jonka objektit haluat lajitella, on toteutettava vertailukelpoinen kรคyttรถliittymรค. | Luokan, jonka objektit haluat lajitella, ei tarvitse toteuttaa vertailurajapintaa. |
| Se tarjoaa yksittรคisiรค lajittelusarjoja. | Se tarjoaa useita lajittelusarjoja. |
| Tรคllรค menetelmรคllรค tiedot voidaan lajitella luonnollisen lajittelujรคrjestyksen mukaan. | Tรคmรค menetelmรค lajittelee tiedot mukautetun lajittelujรคrjestyksen mukaan. |
| Se vaikuttaa alkuperรคiseen luokkaan. eli todellinen luokka muuttuu. | Se ei vaikuta alkuperรคiseen luokkaan, eli varsinaista luokkaa ei muuteta. |
| Toteutettu usein API:ssa kalenterin, Wrapper-luokkien, pรคivรคmรครคrรคn ja merkkijonon avulla. | Se on toteutettu lajittelemaan kolmannen osapuolen luokkien esiintymiรค. |
| Kaikki kรครคreluokat ja String-luokka toteuttavat vertailukelpoisen kรคyttรถliittymรคn. | Ainoat toteutetut Comparator-luokat ovat Collator ja RuleBasedColator. |
12) Selitรค equals() esimerkillรค
Equals() varmistaa, onko numeroobjekti yhtรค suuri kuin objekti, joka vรคlitetรครคn argumenttina vai ei.
Equals()-metodin syntaksi on:
public boolean equals(Object o)
Tรคmรค menetelmรค ottaa kaksi parametria: 1) mikรค tahansa objekti, 2) palauttaa arvon. Se palauttaa tosi, jos hyvรคksytty argumentti ei ole tyhjรค ja se on samantyyppinen objekti, jolla on sama numeerinen arvo.
Esimerkiksi:
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) Listaa yleisen kerรครคmisen edut
Yleisen kokoelman kรคytรถn edut ovat:
- Jos ohjelmoijat kรคyttรคvรคt yleistรค luokkaa, he eivรคt vaadi tyyppilรคhetystรค.
- Se on tyyppiturvallinen ja sen voi tarkistaa kokoamisen yhteydessรค.
- Se tarjoaa koodin vakauden havaitsemalla vian kรครคnnรถshetkellรค.
14) Selitรค tapa muuntaa ArrayList Arrayksi ja Array ArrayListiksi
Ohjelmoijat voivat muuntaa taulukon ArrayListiksi kรคyttรคmรคllรค Arrays-luokan asList()-menetelmรครค. Se on Arrays-luokan staattinen menetelmรค, joka hyvรคksyy List-objektin. asList()-metodin syntaksi on:
Arrays.asList(item)
Java ohjelmoijat voivat muuntaa ArrayList List-objektiksi kรคyttรคmรคllรค syntaksia:
List_object.toArray(new String[List_object.size()])
15) Anna esimerkki ArrayLististรค
Esimerkki kรครคnteisestรค ArrayLististรค on:
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) Anna esimerkki taulukon lajittelusta laskevaan jรคrjestykseen
Esimerkki taulukon lajittelusta laskevaan jรคrjestykseen on:
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) Selitรค perusrajapinnat Java kokoelman puitteet
Java kokoelmakehys on kokoelmahierarkian juuri. Se edustaa ryhmรครค esineitรค sen elementteinรค. The Java ohjelmointikieli ei tarjoa suoraa toteutusta tรคllaiselle rajapinnalle.
- Sarja: Joukko on kokoelma, jossa ei ole pรครคllekkรคisiรค elementtejรค. Se kรคyttรครค hashtablea elementtien tallentamiseen.
- Lista: Lista on jรคrjestetty kokoelma, joka voi sisรคltรครค pรครคllekkรคisiรค elementtejรค. Sen avulla kehittรคjรคt voivat kรคyttรครค kaikkia elementtejรค sen postilaatikosta. Lista on kuin taulukko, jolla on dynaaminen pituus.
- KARTTA: Se on objekti, joka kartoittaa avaimet arvoihin. Se ei voi sisรคltรครค pรครคllekkรคisiรค avaimia. Jokainen avain voidaan yhdistรครค vรคhintรครคn yhteen arvoon.
18) Mitkรค ovat sen ominaisuudet Java Hashmappi?
Ominaisuudet Java Hashmap ovat:
- Arvot voidaan tallentaa karttaan muodostamalla avain-arvo-pari. Arvo voidaan noutaa avaimella vรคlittรคmรคllรค se oikealle menetelmรคlle.
- Jos kartassa ei ole elementtiรค, se antaa "NoSuchElementException"-ilmoituksen.
- HashMap tallentaa vain objektiviittauksia. Tรคstรค syystรค on mahdotonta kรคyttรครค primitiivisiรค tietotyyppejรค, kuten double tai int. Kรคytรค kรครคreluokkaa (kuten Integer tai Double) sen sijaan.
19) Mikรค on pino?
Pino on tietokoneen muistin erityinen alue, joka tallentaa funktion luomia vรคliaikaisia โโmuuttujia. Pinossa muuttujat ilmoitetaan, tallennetaan ja alustetaan ajon aikana.
20) Mikรค on linkitetty luettelo?
Linkitetty luettelo on tietorakenne, joka voi tallentaa kokoelman kohteita. Toisin sanoen linkitettyjรค listoja voidaan kรคyttรครค useiden samantyyppisten objektien tallentamiseen. Jokaista luettelon yksikkรถรค tai elementtiรค kutsutaan solmuksi. Linkitettyjen listan solmulla on tiedot ja seuraavan solmun osoite. Se on kuin ketju. Linkitettyjรค listoja kรคytetรครคn kaavioiden ja puiden luomiseen.
Java Kokoelmien haastattelukysymyksiรค ja vastauksia kokeneille
21) Anna esimerkki ArrayLististรค
Esimerkki ArrayLististรค on:
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) Selitรค linkitetty luettelo, jota tukee Java
Tukee kahdenlaisia โโlinkitettyjen luetteloita Java ovat:
- Yksittรคin linkitetty lista: Yksittรคin linkitetty luettelo on erรครคnlainen tietorakenne. Yksittรคin linkitetyssรค luettelossa jokainen listan solmu tallentaa solmun sisรคllรถn ja viitteen tai osoittimen luettelon seuraavaan solmuun. Se ei tallenna viittausta tai osoitinta edelliseen solmuun.
- Kaksoislinkitetyt listat: Kaksoislinkitetyt luettelot ovat linkitettyjen luetteloiden erityinen tyyppi, jossa tietoelementtien lรคpikulku voidaan tehdรค molempiin suuntiin. Tรคmรค on mahdollista, kun jokaisessa solmussa on kaksi linkkiรค, joista toinen yhdistรครค seuraavaan solmuun ja toinen edelliseen solmuun.
23) Selitรค Queue-rajapinnan tarjoamat menetelmรคt?
Menetelmรคt Java Jonon kรคyttรถliittymรค ovat:
| Menetelmรค | Tuotetiedot |
|---|---|
| boolen lisรคys(objekti) | Lisรครค mรครคritetyn elementin jonoon. Se on totta, jos se onnistuu. |
| boolen tarjous(objekti) | Tรคtรค menetelmรครค kรคytetรครคn elementin lisรครคmiseen jonoon. |
| Objektin poisto () | Se hakee ja poistaa jonon pรครคn. |
| Objektikysely () | (): Se hakee ja poistaa jonon pรครคn tai palauttaa nollan, jos se on tyhjรค. |
| Objektikysely () | Se hakee ja poistaa jonon pรครคn tai palauttaa nollan, jos se on tyhjรค. |
| Objektielementti () | Hakee tiedot jonosta, mutta ei poista sen pรครคtรค. |
| Kohteen kurkistus () | Hakee tiedot jonosta, mutta ei poista sen pรครคtรค, tai jos jono on tyhjรค, se noutaa nollan. |
24) Mainitse Stack-luokan tarjoamat menetelmรคt
Stack-luokan tarjoamia tรคrkeitรค menetelmiรค ovat:
- tyรถntรครค(): Tyรถnnรค tuote pinoon.
- tyhjรค (): Tรคmรค menetelmรค selvittรครค, onko pino tyhjรค vai ei.
- pop (): Tรคmรค Java kokoelmakehysmenetelmรค poistaa objektin pinosta.
- Hae (): Tรคmรค menetelmรค etsii kohteita pinosta.
- kurkistaa (): Tรคmรค Java menetelmรค tarkastelee pinoobjektia poistamatta sitรค.
25) Mรครคrittele tyhjรคSet() kohdassa Java kokoelman puitteet
Menetelmรค emptySet(), joka palauttaa tyhjรคn muuttumattoman joukon aina, kun ohjelmoijat yrittรคvรคt poistaa nollaelementtejรค. Joukko, jonka emptySet() palauttaa, on serialoitavissa. Tรคmรคn menetelmรคn syntaksi on:
julkinen staattinen finaali Aseta tyhjรคjoukko()
26) Tee ero kokoelman ja kokoelman vรคlillรค
Ero kokoelman ja kokoelmien vรคlillรค on:
| Kokoelma | Kaikki tuotteet |
|---|---|
| Kokoelma on kรคyttรถliittymรค. | Kokoelmat on luokkaa. |
| Se edustaa objektiryhmรครค yhtenรค kokonaisuutena. | Se mรครคrittelee erilaisia โโapumenetelmiรค kokoelmaobjekteille. |
| Kokoelma on juurikรคyttรถliittymรค Java Kerรคyskehys. | Kokoelmat on yleishyรถdyllisyysluokka. |
| Tรคtรค kรคyttรถliittymรครค kรคytetรครคn kokoelmatietorakenteiden johtamiseen. | Tรคmรค luokka sisรคltรครค staattisia menetelmiรค tietorakenteen manipuloimiseksi. |
27) Mรครคritรค LinkedHashSet kohdassa Java Kerรคyskehys?
LinkedHashSet on HashSet-nimisen luokan alaluokka ja se toteuttaa joukkorajapinnan. Se on hyvin jรคrjestetty versio HashSetistรค, joka yllรคpitรครค kaksoislinkitettyรค luetteloa kaikissa elementeissรครคn.
28) Mitรค eroa on failfastilla ja vikaturvallisella?
| Failfast | Failsafe |
|---|---|
| Se ei salli kokoelman muokkaamista iteroinnin aikana. | Se mahdollistaa kokoelman muokkaamisen iteroinnin aikana. |
| Se voi heittรครค ConcurrentModificationException | Se ei voi tehdรค poikkeusta. |
| Se kรคyttรครค alkuperรคistรค kokoelmaa elementtien lรคpikulkuun. | Se kรคyttรครค alkuperรคistรค kokoelmakopiota elementtien lรคpikulkuun. |
| Lisรคmuistia ei vaadita. | Lisรคmuistia tarvitaan. |
29) Listaa karttaliittymรคn kokoelmanรคkymiรค
Karttarajapinnan kokoelmanรคkymรคt ovat: 1) avainjoukkonรคkymรค, 2) arvojoukon nรคkymรค ja 3) tulosarjanรคkymรค.
30) Mitkรค ovat kokoelmakehyksen edut Java?
Collection Frameworkin edut Java ovat:
- Java Kerรคyskehys tarjoaa erittรคin tehokkaita ja tehokkaita tietorakenteita, jotka lisรครคvรคt ohjelman tarkkuutta ja nopeutta.
- Ohjelma kehitettiin kanssa Java Kerรคyskehys on helppo yllรคpitรครค.
- Kehittรคjรค voi sekoittaa luokkia muiden tyyppien kanssa, mikรค lisรครค koodin uudelleenkรคytettรคvyyttรค.
- Java kokoelmakehyksen avulla ohjelmoijat voivat muokata primitiivisiรค kokoelmatyyppejรค haluamallaan tavalla.
31) Mikรค on hyvรค tapa lajitella kokoelmaobjektit? Java?
Hyvรค tapa lajitella Java kokoelmaobjektit kรคyttรคvรคt Comparable- ja Comparator-rajapintoja. Kehittรคjรค voi kรคyttรครค Collections.sort()-komentoa, jolloin elementit lajitellaan vertailussa(-ssa) mainitun jรคrjestyksen mukaan.
Kun kehittรคjรค kรคyttรครค kokoelmia, lajittele (Comparator), se lajittelee objektit Comparator-rajapinnan vertailu():n mukaan.
32) Selitรค Vector sisรครคn Java
Vektori on sama kuin taulukko. Siinรค on komponentteja, joihin pรครคsee kรคsiksi indeksiarvon avulla. Vektorit voivat sisรคltรครค vanhan menetelmรคn, joka ei ole osa kokoelmakehystรค.
33) Mitรค eroa on Set ja Map vรคlillรค?
| Asettaa | kartta |
|---|---|
| Joukko kuuluu paketille-java.util. | Kartta kuuluu pakettiin java.util. |
| Se voi laajentaa kokoelman kรคyttรถliittymรครค. | Se ei laajenna kokoelman kรคyttรถliittymรครค. |
| Se ei salli pรครคllekkรคisiรค arvoja. | Se sallii pรครคllekkรคiset arvot. |
| Joukko voi lajitella vain yhden nolla-arvon. | Kartta voi lajitella useita nolla-arvoja. |
34) Mรครคritรค sanakirjaluokka
Sanakirjaluokka on a Java luokka, jolla on kyky tallentaa avainarvo-pareja.
35) Mรครคritรค EnumSet
java.util.EnumSet on Set-toteutus, jota voidaan kรคyttรครค enum-tyyppien kanssa. EnumSetin, jossa on kaikki elementit, on oltava perรคisin yhdestรค eksplisiittisesti tai implisiittisesti mรครคritetystรค enum-tyypistรค. Sitรค ei synkronoida, eikรค myรถskรครคn nolla-avaimia sallita. EnumSet tarjoaa menetelmiรค, kuten EnumSetof(E ensin, Eโฆ rest), komplementOf(EnumSet s) ja copyOf(Collection c).
36) Mitkรค ovat kaksi tapaa poistaa kaksoiskappaleet ArrayLististรค?
Kaksi tapaa poistaa kaksoiskappaleet ArrayLististรค ovat:
- HashSet: Kehittรคjรค voi kรคyttรครค HashSetiรค poistaakseen kopioelementin ArrayLististรค. Haittapuolena on, ettรค se ei voi sรคilyttรครค lisรคysjรคrjestystรค.
- LinkedHashSet: Kehittรคjรคt voivat myรถs yllรคpitรครค lisรคysjรคrjestystรค kรคyttรคmรคllรค LinkedHashSetiรค HashSetin sijaan.
37) Mikรค on IdentityHashMap?
IdentityHashMap on luokka, joka toteuttaa sarjoitettavat, kloonattavat rajapinnat, Map-luokituksen ja laajentaa Abs-luokkaa.tractMap-luokka. Se on suunniteltu tapauksiin, joissa tarvitaan viittaus-yhtรคsuuruussemantiikkaa.
38) Mikรค on WeakHashMap?
WeakHashMap on toteutus Java Kartta. Sitรค kรคytetรครคn tallentamaan heikkoja viittauksia sen avaimiin. Lajittelu tรคmรคn kartan avulla mahdollistaa avain-arvo-parin kerรครคmisen roskana. Sen avaimeen ei viitata WeakHashMapin ulkopuolella.
39) Millรค menetelmillรค keruulangat tehdรครคn turvalliseksi?
Menetelmรคt kerรคilylangan turvaamiseksi ovat:
- Collections.synchronizedList(list);
- Collections.synchronizedMap(kartta);
- Collections.synchronizedSet(set);
40) Selitรค Ei tuettuOperationpoikkeus
tukematonOperationException on poikkeus, joka heitetรครคn menetelmille, joita todellinen kokoelmatyyppi ei tue.
Esimerkiksi kehittรคjรค tekee vain luku -luettelon kรคyttรคmรคllรค "Collections.unmodifiableList(list)" ja kutsuu menetelmรครค call(), add() tai remove(). Sen pitรคisi selvรคsti heittรครค UnsupportedOperationpoikkeus.
41) Nimeรค kokoelmaluokat, jotka antavat satunnaisen pรครคsyn elementteihinsรค
Kokoelmaluokat, jotka antavat satunnaisen pรครคsyn elementteihinsรค, ovat: 1) ArrayList, 2) HashMap, 3) TreeMap ja 4) Hashtable.
42) Selitรค ero Queue ja Deque vรคlillรค.
| Jono | deque |
|---|---|
| Sitรค kutsutaan yksipรครคtteiseksi jonoksi | Sitรค kutsutaan kaksipรคiseksi jonoksi |
| Jonon elementit lisรคtรครคn tai poistetaan toisesta pรครคstรค | Jonon elementit lisรคtรครคn kummastakin pรครคstรค voidaan lisรคtรค ja poistaa molemmista pรครคstรค |
| Se on vรคhemmรคn monipuolinen. | Se on monipuolisempi. |
43) Mainitse toteuttava List and Set -liitรคntรค
Luokan toteutusluettelon kรคyttรถliittymรค: 1) ArrayList, 2) Vector ja 3) LinkedList.
Luokan toteutussarjan kรคyttรถliittymรค: 1) HashSet ja 2) TreeSet.
44) Selitรค suunnittelukuvio ja Iterator
Iteraattori seuraa iteraattorin suunnittelumallin yksityiskohtia. Sen avulla kehittรคjรค voi navigoida objektikokoelmissa yhteisen kรคyttรถliittymรคn avulla tietรคmรคttรค sen toteutusta.
45) Mikรค on Queue-liittymรคn peek()?
Peek () on jonorajapinnan menetelmรค. Se hakee kaikki elementit, mutta ei poista jonon pรครคtรค. Jos jono on tyhjรค, tรคmรค menetelmรค palauttaa null.
46) Mikรค on CopyOnWriteArrayList?
CopyOnWriteArrayList on muunnos ArrayLististรค, jossa toiminnot, kuten add ja set, toteutetaan luomalla kopio taulukosta. Se on sรคikeen varma, eikรค se siten aiheuta ConcurrentModificationException-poikkeusta. Tรคmรค ArrayLists sallii kaikki elementit, mukaan lukien null.
47) Erota ArrayList ja LinkedList
Ero ArrayListin ja LinkedListin vรคlillรค on:
| ArrayList | LinkedList |
|---|---|
| Se kรคyttรครค dynaamista taulukkoa. | Se kรคyttรครค kaksoislinkitettyรค luetteloa. |
| ArrayList ei ole suositeltava kรคsittelyyn. | LinkedList on parempi manipulointiin. |
| ArrayList tarjoaa satunnaisen pรครคsyn. | LinkedList ei tarjoa satunnaista pรครคsyรค. |
| ArrayList s tallentaa vain objektit, joten se vie vรคhemmรคn muistia | LinkedList tallentaa objektin sekรค osoiteobjektin; siksi se vie enemmรคn muistia. |
48) Selitรค iteraattorirajapinnan menetelmรคt
Iteraattorin kรคyttรถliittymรคn menetelmรคt ovat:
| Menetelmรค | Tuotetiedot |
|---|---|
| julkinen boolean hasNext() | Se palauttaa tosi, jos iteraattorissa on elementtejรค; muussa tapauksessa se palauttaa epรคtosi. |
| julkinen objekti seuraava() | Tรคmรค menetelmรค palauttaa elementin ja siirtรครค osoittimen seuraavaan arvoon. |
| public void poista() | Tรคmรค Java menetelmรค voi poistaa viimeiset iteraattorin palauttamat elementit. Public void remove() on vรคhemmรคn kรคytetty. |
49) Mitkรค ovat HashSet-luokan menetelmรคt?
HashSet-luokan menetelmรคt ovat:
| Menetelmรคt | Tuotetiedot |
|---|---|
| boolen lisรคys (objekti o) | Tรคmรค menetelmรค lisรครค mainintaelementin tรคhรคn joukkoon, jos sitรค ei vielรค ole. |
| Boolean sisรคltรครค (Objekti o): | Se palauttaa tosi, jos joukko sisรคltรครค mรครคritetyn elementin. |
| tyhjรค tyhjรค(): | Tรคmรค menetelmรค poistaa joukkoelementtejรค. |
| boolean isEmpty(): | Se palauttaa tosi, jos joukossa ei ole elementtejรค. |
| boolen poisto (objekti o): | Se poistaa mรครคritetyn elementin sarjasta. |
| objektin klooni(): | Tรคmรค menetelmรค palauttaa kopion HashSet-ilmentymรคstรค: itse elementtejรค ei kloonata. |
| iteraattori iteraattori() | Se palauttaa iteraattorin tรคmรคn joukon elementtien pรครคlle. |
| int size(): | Se palauttaa joukossa kรคytettรคvissรค olevien elementtien mรครคrรคn. |
50) Mitkรค ovat menetelmรคt Java TreeSet-luokka?
Menetelmรคt Java TreeSet-luokat ovat:
| Menetelmรคt | Descriptionit |
|---|---|
| looginen addAll (kokoelma c) | Lisรครค kaikki mรครคritetyn kokoelman elementit tรคhรคn joukkoon. |
| totuusarvo sisรคltรครค (Object o) | Palauttaa tosi, jos joukko sisรคltรครค maininta-elementin. |
| totuusarvo onTyhjรค () | Tรคmรค Java Metodi palauttaa tosi, jos tรคmรค joukko ei sisรคllรค elementtejรค. |
| looginen poisto (Object o) | Poista mรครคritetty elementti sarjasta. |
| tyhjรค lisรคys (objekti o) | Se lisรครค mรครคritetyn elementin joukkoon. |
| mitรคtรถn selvรค () | Tรคmรค Java menetelmรค poistaa kaikki elementit joukosta. |
51) Selitรค Linked HashSet
Java LinkedHashSet-luokka on Set-kรคyttรถliittymรคn linkitetty lista ja hash-taulukko. Se sisรคltรครค ainutlaatuisia elementtejรค, jotka ovat samat kuin HashSet. Linkitetty HashSet sisรครคn Java tarjoaa myรถs valinnaisia โโasetustoimintoja, jotka voivat sรคilyttรครค lisรคysjรคrjestyksen.
52) Mitรค tรคrkeitรค menetelmiรค kรคytetรครคn linkitetyssรค luettelossa?
Linkitetyssรค luettelossa kรคytetyt tรคrkeรคt menetelmรคt ovat:
| Menetelmรค | Tuotetiedot |
|---|---|
| boolen lisรคys(objekti o) | Sitรค kรคytetรครคn lisรครคmรครคn mรครคritetty elementti vektorin loppuun. |
| totuusarvo sisรคltรครค (Object o) | Se on menetelmรค, joka palauttaa tosi, jos tรคmรค luettelo sisรคltรครค mรครคritetyn elementin. |
| void add (int index, Object element) | Lisรครค elementin vektorin mรครคritettyyn elementtiin. |
| void addFirst(Object o) | Sitรค kรคytetรครคn syรถttรคmรครคn annettu elementti alkuun. |
| void addLast(Object o) | Sitรค kรคytetรครคn liittรคmรครคn annettu elementti loppuun. |
| Int size () | Tรคtรค menetelmรครค voidaan kรคyttรครค palauttamaan luettelon elementtien kokonaismรครคrรค. |
| looginen poisto (Object o) | Se voi poistaa mรครคritetyn elementin ensimmรคisen esiintymรคn tรคstรค luettelosta. |
| int indexOf(Objektielementti) | Tรคmรค Java menetelmรค palauttaa indeksin, jossa mainita-elementti esiintyy ensimmรคisen kerran tรคssรค luettelossa tai -1. |
| int lastIndexOf(Objektielementti) | On Java menetelmรค, joka palauttaa indeksin, jossa mรครคritetyn elementin viimeinen esiintyminen tรคssรค luettelossa on, tai -1. |
53) Listaa eri luokkia sarjoina
Erilaisia โโluokkia saatavilla sarjoina ovat: HashSet, TreeSetand ja LinkedHashSet.
54) Listaa kรคytettรคvissรค olevat menetelmรคt Java Jonon kรคyttรถliittymรค
- boolen lisรคys(objekti)
- boolen tarjous(objekti)
- objekti poista()
- objektikysely()
- objektielementti()
- objekti peek()
55) Tee ero listan ja joukon vรคlillรค.
| Lista | Asettaa |
|---|---|
| Tilattu kokoelma elementtejรค | Jรคrjestรคmรคtรถn kokoelma elementtejรค |
| Sรคilyttรครค lisรคysjรคrjestyksen | Ei sรคilytรค lisรคysjรคrjestystรค |
| Pรครคllekkรคiset arvot ovat sallittuja | Pรครคllekkรคiset arvot eivรคt ole sallittuja |
| Mikรค tahansa mรครคrรค nolla-arvoja voidaan tallentaa | Vain yksi nolla-arvo voidaan tallentaa |
| ListIteratorilla voidaan liikkua listaa mihin tahansa suuntaan | ListIteratoria ei voi kรคyttรครค joukon lรคpikulkuun |
| Sisรคltรครค vanhan luokan nimeltรค vektori | Ei sisรคllรค mitรครคn perintรถluokkaa |
Java Kokoelmien haastattelukysymyksiรค ja vastauksia yli 5 vuoden kokemuksella
56) Selitรค jokaista silmukkaa esimerkin avulla
For-Each Loop on toinen for-silmukan muoto, jota kรคytetรครคn taulukon lรคpikulkuun. Se vรคhentรครค koodia merkittรคvรคsti, eikรค silmukassa kรคytetรค indeksiรค tai pikemminkin laskuria.
Esimerkki jokaiselle silmukalle:
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) Selitรค timanttioperaattori
Diamond-operaattorin avulla kรครคntรคjรค voi kerรคtรค geneerisen luokan tyyppiargumentit. sisรครคn Java SE, kehittรคjรค voi korvata parametroidun konstruktorin tyhjillรค parametrijoukoilla (<>), jotka tunnetaan nimellรค timanttioperaattori.
58) Selitรค satunnaiskรคyttรถliittymรค
List-toteutukset kรคyttรคvรคt RandomAccess-liitรคntรครค osoittamaan, ettรค ne tukevat nopeasti.
59) Nimeรค kokoelmaluokat, jotka toteuttavat hajasaantirajapinnan
Java.util-paketissa on luokat, jotka voivat toteuttaa satunnaiskรคyttรถliittymรคn: CopyOnWriteArrayList, Stack, ArrayList ja Vector.
60) Kuinka liittyรค useisiin ArrayLists-luetteloihin?
Lista tarjoaa addall()-menetelmรคn, jossa on useita ArrayList-luetteloita Java.
Harkitse esimerkiksi kahta listaa 1) areaList ja 2) secondAreaList. Kehittรคjรค voi liittyรค niihin kรคyttรคmรคllรค addall():ta, kuten:
alueLista.lisรครคKaikki(toinenAreaList);
61) Selitรค deque Interface
Java.util.Deque on Java, kรคyttรถliittymรค, joka laajentaa jonokรคyttรถliittymรครค. Se tukee elementtien lisรครคmistรค ja poistamista molemmista pรคistรค. Tรคtรค jonoa kutsutaan myรถs kaksipรคiseksi jonoksi.
62) Selitรค Linkedhashmap
LinkedHashMap on Map-kรคyttรถliittymรคn toteutus. Se voi myรถs laajentaa HashMap-luokkaa. Siksi, kuten HashMap, LinkedHashMap mahdollistaa Java kehittรคjรคt sallivat yhden nolla-avaimen ja useamman kuin yhden nolla-arvon.
63) Selitรค menetelmiรค elementtien poistamiseksi ArrayLististรค
Menetelmรคt elementtien poistamiseksi ArrayLististรค ovat:
| Menetelmรค | Tuotetiedot |
|---|---|
| asia selvรค() | Tรคmรค menetelmรค poistaa elementit ArrayLististรค. |
| poista (int index) | Tรคmรค ArrayList-menetelmรค voi poistaa elementin tietystรค paikasta. |
| poista (objekti o) | Se voi poistaa mainintaelementin ensimmรคisen esiintymรคn ArrayLististรค. |
| Poista kaikki() | Se voi poistaa luettelon elementeistรค, jotka ovat tietyssรค kokoelmassa. |
| removeIf(Predikaatti suodattaa) | Tรคmรค menetelmรค poistaa elementit, jotka tรคyttรคvรคt predikaatin maininnan. |
64) Selitรค kartta. merkintรค kartalla
Map.entry on a Java java.util kรคyttรถliittymรค. Siinรค on sisรคkkรคinen kรคyttรถliittymรค Mapissa. Tรคmรค kรคyttรถliittymรค on mรครคritettรคvรค luokan tai kรคyttรถliittymรคn nimellรค, jonka jรคsen se on. Siksi se on luokiteltu kartaksi. Sisรครคnpรครคsy. Se edustaa avain- ja arvoparia, joka voi muodostaa kartan elementin.
Tรคmรค menetelmรค palauttaa nรคkymรคn kokoelmasta. Harkitse esimerkiksi kaupunkikarttaa karttana. Kehittรคjรค voi kรคyttรครค enterSet():tรค saadakseen joukkonรคkymรคn kartasta, jossa on elementti Map.Entry. Ohjelmoija voi myรถs kรคyttรครค Map.Entry:n getKey()- ja getValue():ia saadakseen kartan avaimen ja arvon parin.
65) Mitรค menetelmรครค kรคytetรครคn taulukon lajitteluun nousevaan jรคrjestykseen?
Java kokoelmakehysmenetelmรครค Collections.sort() kรคytetรครคn lajittelemaan taulukko nousevaan jรคrjestykseen.
66) Kuinka mitata ArrayListin suorituskykyรค?
ArrayListin suorituskykyรค voidaan mitata seuraavilla tavoilla:
- Elementin lisรครคminen: Kehittรคjรค voi lisรคtรค elementin ArrayListin loppuun kรคyttรคmรคllรค add(E e) -menetelmรครค. Se on O(1). Pahimmassa tapauksessa se voi mennรค kohtaan O(n). Tรคmรค voi tapahtua, jos kehittรคjรค lisรครค enemmรคn elementtejรค kuin taulukon kapasiteetti.
- Elementin hakeminen: Kehittรคjรค voi kรคyttรครค taulukkoindeksiรค kรคyttรคmรคllรค get(int index). Suorituskykyรค voidaan tรคssรค tapauksessa mitata kรคyttรคmรคllรค ArrayList get() on O(1).
- Elementin poistaminen: Siinรค tapauksessa, ettรค kehittรคjรคt poistavat elementtiรค kรคyttรคmรคllรค remove(int-indeksiรค), niin ArrayListin suorituskyky voidaan laskea mainitulla poisto(int index) -operaatiolla on O(n โ index) menetelmรค.
67) Selitรค LinkedList-luokka
LinkedList-luokka sisรครคn Java toteuttaa Deque and List -toiminnon kรคyttรคmรคllรค kaksoislinkitettyรค luetteloa. Kaksinkertaisesti linkitetyssรค luettelossa on yksityinen luokkasolmu, joka tarjoaa sen rakenteen. Siinรค on myรถs nimikemuuttuja arvon sรคilyttรคmiseksi ja viittauksen solmuluokkaan. Tรคtรค voidaan kรคyttรครค seuraavan ja edellisen solmun yhdistรคmiseen.
68) Anna esimerkki Hashmapista
Hashmapin esimerkki on:
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) Kuinka iteroida karttaa?
Kehittรคjรค ei voi iteroida karttaa suoraan, mutta tรคssรค kรคyttรถliittymรคssรค on kaksi menetelmรครค, jotka antavat nรคkymรคn karttaan. Nรคmรค menetelmรคt ovat:
- Aseta >entrySet(): Se on menetelmรค, joka palauttaa joukon, jonka merkinnรคt mainitaan kartassa. Nรคmรค merkinnรคt ovat yleensรค vastustettuja, joiden tyyppi on Kartta. Sisรครคnpรครคsy.
- Aseta keySet(): Tรคmรค Java menetelmรค palauttaa joukon, jolla on karttaavain.
70) Selitรค Treemap sisรครคn Java
TreeMap on luokka, joka toteuttaa Map-rajapinnan LinkedHashMap ja HashMap. Se voi myรถs toteuttaa NavigableMap-rajapinnan ja laajentaa Abs-rajapintaa.tractMap-luokka.
71) Mitรค eroa on Hashmapin ja Hashtablen vรคlillรค?
| Hashmap | Hashtable |
|---|---|
| Sitรค ei ole synkronoitu. | Se on synkronoitu. |
| HashMap sallii yhden avaimen nollaarvona. | HashTable ei salli nolla-arvoja. |
| Iteraattoria kรคytetรครคn HashMapin lรคpikulkuun. | Hashtaulukon lรคpikรคymiseen kรคytetรครคn Iteraattoria tai Enumeraattoria. |
| Sitรค voidaan kรคyttรครค sekรค HashTableille ettรค HashMapille ja se on nopea. | Sitรค voidaan kรคyttรครค HashTablen kanssa ja se on vikasietoinen. |
| HashMap toimii nopeammin kuin HashTable. | Hashtable ei ole paljon nopeampi verrattuna HashMapiin. |
72) Selitรค HashSetin sisรคinen toiminta Java
HashSet sisรครคn Java kรคyttรครค sisรคisesti HashMapia elementtien tallentamiseen. Se voi myรถs tallentaa ainutlaatuisia arvoja ilman pรครคllekkรคisiรค arvoja.
In Java, HashSet-kehittรคjรคllรค voi olla add(E e) -metodi, joka ottaa vain lisรคttรคvรคn elementin parametriksi. Se ei hyvรคksy avain- ja arvoparia.
73) Selitรค Big-O-merkintรค esimerkillรค
Big-O-merkintรค kuvaa algoritmin suorituskykyรค ArrayListin elementtien lukumรครคrรคnรค. Kehittรคjรค voi kรคyttรครค Big-O-merkintรครค valitakseen kokoelman toteutuksen. Se perustuu suorituskykyyn, aikaan ja muistiin.
Esimerkiksi ArrayList get(index i) on tapa suorittaa vakioaikatoiminto. Se ei riipu luettelossa olevien elementtien kokonaismรครคrรคstรค. Siksi suorituskyky Big-O-merkinnรถissรค on O(1).
74) Selitรค parhaat kรคytรคnnรถt Java Collection Framework
Parhaat kรคytรคnnรถt Java Kokoelmakehykset ovat:
- Oikean kokoelmatyypin valitseminen riippuu tarpeesta.
- Vรคltรค tiivistรคmistรค tai koon muuttamista arvioimalla kokoelmaluokkiin tallennettavien elementtien kokonaismรครคrรค.
- Kirjoittaa Java ohjelma liitรคntรถjen suhteen. Tรคmรค auttaa kehittรคjรครค muuttamaan sen toteutusta vaivattomasti tulevaisuudessa.
- Kehittรคjรค voi kรคyttรครค Genericsiรค tyyppiturvallisuuden vuoksi.
- Kรคytรค muuttumattomia luokkia, jotka on antanut Java Development Kit. Vรคltรค equals():n ja hajautusarvon kรคyttรถรค.Code() mukautetuille luokille.
- Ohjelmoijan tulee kรคyttรครค Kokoelmat-apuluokkaa algoritmeihin tai vain luku -muotoisten, synkronoitujen tai tyhjien kokoelmien saamiseksi. Tรคmรค parantaa koodin uudelleenkรคytettรคvyyttรค alhaisella yllรคpidolla.
75) Selitรค erityyppisiรค jonoja Java
Siellรค on kolmenlaisia โโjonoja Java:
- Prioriteettijono: Se on erityinen jonotyyppi, jossa elementit lajitellaan niiden luonnollisen jรคrjestyksen tai mukautetun vertailijan mukaan.
- Pyรถreรค jono: Se on erรครคnlainen jono, jossa kรคyttรคjรคn toiminnot suoritetaan FIFO-menetelmรคn perusteella. Viimeinen elementti yhdistetรครคn ensimmรคiseen kohtaan ympyrรคn muodostamiseksi.
- Double- pรครคttynyt jono: Kaksipรคinen jono on vatsalihastract-tietotyyppi, joka yleistรครค jonon. Jonon elementtejรค voidaan lisรคtรค tai poistaa joko jonon pรครคstรค tai hรคnnรคstรค.
76) Mitรค eroa pinon ja jonon vรคlillรค on?
| Pinota | Jono |
|---|---|
| Pinon toimintaperiaate on LIFO. | Jonon toimintaperiaate on FIFO. |
| Toista pรครคtรค kรคytetรครคn elementtien lisรครคmiseen tai poistamiseen. | Toista pรครคtรค kรคytetรครคn lisรคyksen suorittamiseen ja toista pรครคtรค kรคytetรครคn elementtien poistamiseen. |
| Se kรคyttรครค yhtรค osoitinta. | Se kรคyttรครค kahta osoitinta yksinkertaisessa jonossa. |
| Sillรค ei ole minkรครคnlaista varianttia. | Siinรค on muunnelmia, kuten prioriteettijono, pyรถreรค jono, kaksipรคinen jono. |
| Se on helppo kรคyttรครค. | Sitรค ei ole helppo kรคyttรครค. |
77) Mitรค eroa on taulukolla ja pinolla?
Ero taulukon ja pinon vรคlillรค on:
| Ryhmรค | Pinota |
|---|---|
| Se on kokoelma elementtejรค, jotka tunnistetaan indeksillรค. | Se on kerรคysoperaatio, joka toimii push- ja pop-operaatioina. |
| Siinรค on tietotyyppien elementtejรค, jotka ovat samat. | Siinรค on erilaisia โโtietotyyppejรค. |
| Elementit voidaan poistaa tai lisรคtรค taulukkoon kรคyttรคmรคllรค hajasaantitoimintoa. | Elementit voidaan poistaa tai lisรคtรค pinoon LIFO-toiminnolla. |
78) Mรครคritรค iteraattori()
Iterator() on kรคyttรถliittymรค, joka tarjoaa menetelmiรค kokoelman iterointiin. Iteraattori voi korvata Enumerationin Java. Sen avulla soittaja voi poistaa elementtejรค kokoelmasta. Menetelmรค tarjoaa yleisen tavan kulkea kรคyttรคmรคllรค kokoelman elementtejรค ja toteuttamalla iteraattorin suunnittelumallia.
79) Mitรค eri tapoja on toistaa luetteloa?
Java kokoelma Framework-ohjelmoija voi iteroida luetteloa kahdella tavalla: 1) kรคyttรคmรคllรค iteraattoria ja 2) kรคyttรคmรคllรค sitรค jokaiselle silmukka.
80) Mitkรค ovat pinon edut?
Pinon edut ovat:
- Sen avulla voit hallita tietoja LIFO (Last In First Out) -menetelmรคllรค, mikรค ei ole mahdollista Linked-luettelon ja -taulukon kanssa.
- Kun funktiota kutsutaan, paikalliset muuttujat tallennetaan pinoon, ja se tuhotaan automaattisesti, kun se palautetaan.
- Pinoa kรคytetรครคn, kun muuttujaa ei kรคytetรค kyseisen funktion ulkopuolella.
- Sen avulla voit hallita muistin varaamista ja vapauttamista.
- Pino puhdistaa kohteen automaattisesti.
- Ei helposti korruptoitunut
- Muuttujat kokoa ei voi muuttaa.
Nรคmรค haastattelukysymykset auttavat myรถs vivassasi (suullinen)


