30 top java collections interview questions with answers
Овај водич укључује листу најчешће постављаних питања о интернетским питањима за Јава колекције, заједно са одговорима и примјерима за вас :
Основни АПИ Јава је Јава Цоллецтионс Фрамеворк. Подржава основни концепт овог програмског језика. Ако желите да будете Јава програмер, требало би да добро знате ове основне концепте.
Подручје Јава колекција изузетно је широко и у интервјуу се могу поставити многа питања. Овде смо сакупили списак што више релевантних питања која ће вам се можда поставити у вашем интервјуу.
=> Овде погледајте како бисте овде видели А-З Јава Водича за обуку
Шта ћете научити:
Питања за интервју за Јава Цоллецтионс
П # 1) Објасните Јава Цоллецтионс Фрамеворк.
Одговор: Оквир Јава Цоллецтионс је архитектура која помаже у управљању и чувању групе објеката. Помоћу ње програмери могу да приступе унапред упакованим структурама података и манипулишу подацима уз употребу алгоритама.
Јава колекција укључује интерфејс и класе, који подржавају операције попут претраживања, брисања, уметања, сортирања итд. Заједно са интерфејсом и класама, Јава колекције укључују и алгоритме који помажу у манипулацијама.
П # 2) Које су предности Јава колекција?
Одговор:
Предности Јава колекција су:
- Уместо да примењује наше класе колекције, он користи основне класе колекције, смањујући тако напор потребан за његов развој.
- Користи класе оквира за прикупљање које су добро тестиране. Стога је побољшан његов квалитет кода.
- Смањује напор у одржавању кода.
- Јава Цоллецтион Фрамеворк је интероперабилан и може се поново користити.
П # 3) Шта знате о хијерархији колекција на Јави?
Одговор:
(слика извор )
П # 4) Реците нам о основним интерфејсима Јава Цоллецтион.
Одговор:
У наставку су наведени основни интерфејси Јава Цоллецтион Фрамеворк-а.
Колекција: То је основа хијерархије Збирке и представља њене елементе. Међутим, Јава не пружа никакву директну примену Цоллецтион. Такође, већина Јава колекција долази из овог интерфејса.
Комплет: Не може да садржи дуплиране елементе док моделира апстракцију математичког скупа. Као што и само име говори, представља скупове, на пример, шпил карата.
Листа: Може да садржи дуплиране елементе и представља уређену колекцију. Његов индекс можете користити за приступ било којем елементу у њему. Листа је попут аранжмана, низа, динамичке дужине.
Ово је неколико интерфејса Јава Цоллецтион. Међутим, постоји још неколико интерфејса као што је приказано у наставку.
- Ред чекања
- Декуеуе
- Итератор
- Итерабле
- СортедСет
- ЛистИтератор.
П # 5) Зашто Колекција не проширује серијске и клонирајуће интерфејсе Интерфејс?
Одговор: Задатак интерфејса за прикупљање је да одреди групу објеката који се називају елементи. Имплементација Збирки одлучује како ће се елементи одржавати. На пример, имплементације Листа дозвољавају дуплиране елементе, али имплементације скупа не.
Многе примене имају метод за јавно клонирање. Али није практично укључити га у све имплементације колекције, јер је колекција апстрактна, а имплементација је најважнија.
Значење и последице сериализације и клонирања имају смисла током рада са суштинским применама. Отуда је на стварној имплементацији да одлучи да ли може и како да се сериализује или клонира.
Сазнајте више = >> Маркер интерфејс у Јави: серизибилан и клониран
Због тога индуковање сериализације и клонирања у свакој примени није врло флексибилно и рестриктивно.
П # 6) Шта разумете под Итератор-ом у оквиру Јава Цоллецтион Фрамеворк?
Одговор: У једноставним низовима можемо користити петље за приступ сваком елементу. Када је сличан приступ потребан за приступ елементима у колекцији, користимо итераторе. Итератор је конструкција која се користи за приступ елементима објеката колекције.
У Јави су Итератори објекти који имплементирају „Итератор“ интерфејс Цоллецтион Фрамеворк-а. Овај интерфејс је део пакета јава.утил.
Неке од карактеристика итератора су:
- Итератори се користе за прелазак објеката Колекције.
- Итератори су познати као „Универзални курсор Јава“, јер исти Итератор можемо користити за све колекције.
- Итератори пружају операције „Читање“ и „Уклањање“, осим преласка колекцијама.
- Како су универзални и раде са свим колекцијама, итераторе је лакше применити.
Наведите питања о колекцији Јава
П # 7) Да ли сте упознати са употребом интерфејса листе?
(слика извор )
Одговор: Сврха интерфејса листе је да одржи редослед уметања. Такође омогућава складиштење дупликата вредности.
Помаже у глаткој манипулацији елементима у зависности од индекса помоћу различитих метода које садржи. АрраиЛист, Вецтор, Стацк и ЛинкедЛист су различите класе које примењују интерфејс листе.
П # 8) Шта разумете о АрраиЛист у Јави?
Одговор: Имплементација интерфејса листе је АрраиЛист. Динамички додаје или уклања елементе са листе, а такође омогућава уметање елемената заједно са положајним приступом. АрраиЛист дозвољава двоструке вредности и његова величина се може динамички повећавати ако број елемената премаши почетну величину.
П # 9) Како ћете претворити низ низова у АрраиЛист?
Одговор: Ово је питање за програмирање на почетном нивоу које анкетар тражи да провери ваше разумевање класа Збирка корисних предмета. Сакупљање и низови су две корисне класе оквира за прикупљање које анкетере често занимају.
Колекције нуде одређене статичке функције за извршавање одређених задатака на врстама колекција. Иако Арраи има услужне функције које извршава на типовима низова.
//String array String() num_words = {'one', 'two', 'three', 'four', 'five'}; //Use java.util.Arrays class to convert to list List wordList = Arrays.asList(num_words);
Имајте на уму да осим типа Стринг, за конверзију у АрраиЛист можете користити и друге типове низова.
На пример,
//Integer array Integer() numArray = {10,20,30,40}; //Convert to list using Arrays class asList method List num_List = Arrays.asList(numArray);
П # 10) Претвори Арраи у АрраиЛист и АрраиЛист у Арраи.
Одговор: За претварање АрраиЛист у Арраи користи се метода тоАрраи () - Лист_објецт.тоАрраи (нови низ (Лист_објецт.сизе ()))
Док се метода асЛист () користи за претварање низа у АрраиЛист- Арраис.асЛист (ставка). АсЛист () је статична метода где су параметри објекти листе.
П # 11) Шта је ЛинкедЛист и колико је његових врста подржано у Јави?
(слика извор )
Одговор: ЛинкедЛист је структура података са низом веза где је свака веза повезана са следећом везом.
Два типа ЛинкедЛист користе се у Јави за чување елемената:
- Појединачно повезана листа: Овде сваки чвор чува податке чвора заједно са референцом или показивачем на следећи чвор.
- Двоструко повезана листа: Двоструко ЛинкедЛист долази са двоструким референцама, једном референцом на следећи чвор, а другом за претходни чвор.
П # 12) Шта разумете под БлоцкингКуеуе?
Одговор: У једноставном реду знамо да кад год је ред пун, не можемо убацити више ставки. У овом случају, ред једноставно даје поруку да је ред пун и да излази. Сличан случај се дешава када је ред празан и у њему нема елемента који треба уклонити.
Уместо да само изађемо када уметање / уклањање не може да се уради, како би било да сачекамо док не убацимо или уклонимо ставку?
На ово се одговара промењеном позваном реду „Блокирајући ред“ . У блокадном реду, блокирање се активира током операција енкуеуе анд декуеуе кад год ред покушава да стави у ред пуни ред или декуеуе празан ред.
Блокирање је приказано на следећој слици.
БлоцкингКуеуе
Тако ће, током рада енкуеуе, ред за блокирање сачекати док не постане доступан простор тако да се ставка може успешно уметнути. Слично томе, у операцији декуеуе ред чекања ће чекати док ставка не постане доступна за операцију.
претворити асции у инт ц ++
Ред за блокирање имплементира интерфејс „БлоцкингКуеуе“ који припада пакету „јава.утил.цонцуррент“. Треба имати на уму да интерфејс БлоцкингКуеуе не дозвољава нулл вредност. Ако наиђе на нулу, баца НуллПоинтерЕкцептион.
П # 13) Шта је приоритетни ред у Јави?
Одговор: Приоритетни ред у Јави сличан је структури података стека или реда. То је апстрактни тип података у Јави и имплементиран је као класа ПриоритиКуеуе у пакету јава.утил. Приоритетни ред има посебну функцију да свака ставка у приоритетном реду има приоритет.
У реду приоритета, ставка са већим приоритетом је сервер пре ставке са нижим приоритетом.
Све ставке у приоритетном реду су поредане према природном редоследу. Елементе такође можемо да наручимо према прилагођеном редоследу пружајући упоређивач у време креирања објекта приоритетног реда.
Поставите питања о интервјуу за интерфејс
П # 14) Чему служи Сет Интерфаце? Реците нам нешто о часовима који ово спроводе Интерфејс.
Одговор: Интерфејс скупа користи се у теорији скупова за обликовање математичког скупа. Сличан је интерфејсу Листа, а ипак се мало разликује од њега. Сет Интерфаце стога није уређена колекција, нема сачуваног редоследа када уклањате или додајете елементе.
Углавном, не подржава дуплиране елементе, па је сваки елемент у Сет Интерфаце јединствен.
Омогућава и смислена поређења инстанци Сет-а чак и када постоје различите примене. Такође, ставља значајнији уговор о радњама операција екуалс и хасхЦоде. Ако два примера имају исте елементе, онда су једнаки.
Из свих ових разлога, Сет Интерфаце нема операције засноване на индексу елемената као што је Лист. Користи само наслеђене методе интерфејса за прикупљање. ТрееСет, ЕнумСет, ЛинкедХасхСет и ХасхСет имплементирају Сет Интерфаце.
П # 15) Желим да додам нулти елемент у ХасхСет и ТрееСет. Да ли могу?
Одговор: Не можете додати ниједан нулл елемент у ТрееСет јер користи НавигаблеМап за складиштење елемената. Али у ХасхСет можете додати само један. СортедМап не дозвољава нулл тастере и НавигаблеМап је његов подскуп.
Због тога не можете да додате нулл елемент у ТрееСет, он ће смислити НуллПоинтерЕкцептион сваки пут када то покушате да урадите.
П # 16) Шта знате о ЛинкедХасхСет-у?
Одговор: ЛинкедХасхСет је подкласа ХасхСет-а и намеће Сет Интерфаце. Као уређени облик ХасхСет-а, он управља двоструко повезаном листом кроз све елементе које садржи. Задржава редослед уметања и баш као и његова родитељска класа, носи само јединствене елементе.
П # 17) Разговарајте о начину на који ХасхСет складишти елементе.
Одговор: ХасхМап чува парове кључ / вредност, али кључеви би требали бити јединствени. Ову функцију Мап користи ХасхСет да би био сигуран да је сваки елемент јединствен.
Изјава мапе у ХасхСету појављује се као што је приказано доле:
private transient HashMapmap; //This is added as value for each key private static final Object PRESENT = new Object();
Спремљени елементи у ХасхСету чувају се као кључ на мапи, а објекат је представљен као вредност.
П # 18) Објасните метод ЕмптиСет ().
Одговор: Метода Емптисет () уклања нулл елементе и враћа празан непроменљиви скуп. Овај непроменљиви скуп је сериализиран. Декларација методе Емптисет () је- јавни статички коначни скуп емптиСет ().
Питања за интервју са интерфејсом мапе
П # 19) Реците нам нешто о интерфејсу карте.
Одговор: Мап Интерфаце је дизајниран за брже претраживање и садржи елементе у облику парова кључ / вредност. Како је овде сваки кључ јединствен, он се повезује или пресликава само у једну вредност. Ови парови кључева / вредности називају се уносима мапе.
У овом интерфејсу постоје потписи метода за преузимање, уметање и уклањање елемената у зависности од јединственог кључа. То га чини савршеним алатом за мапирање асоцијација кључ / вредност, попут речника.
П # 20) Мапа не проширује интерфејс за прикупљање. Зашто?
Одговор: Сучеље за прикупљање је акумулација објеката и ти се објекти структурно складиште са механизмом одређеног приступа. Док интерфејс Мап следи структуру парова кључ / вредност. Метода додавања интерфејса за прикупљање не подржава методу стављања интерфејса мапе.
Због тога Мап не проширује интерфејс за колекцију, али је ипак важан део Јава Цоллецтион Фрамеворк-а.
П # 21) Како ХасхМап ради на Јави?
Одговор: ХасхМап је колекција заснована на мапи и њени предмети се састоје од парова кључ / вредност. ХасхМап се обично означава са или. Сваком елементу хеш-мапе може се приступити помоћу његовог кључа.
ХасхМап ради на принципу „распршивања“. У техници хеширања, дужи низ се трансформише у мањи низ помоћу „хеш функције“ која није ништа друго до алгоритам. Мањи низ помаже у бржем претраживању и ефикасном индексирању.
П # 22) Објасните ИдентитиХасхМап, ВеакХасхМап и ЦонцуррентХасхМап.
Одговор:
ИдентитиХасхМап је слично ХасхМап-у. Разлика је у томе што приликом упоређивања елемената ИдентитиХасхМап користи референтну једнакост. Није пожељна имплементација мапе и иако извршава интерфејс мапе, она намерно не испуњава општи уговор о мапи.
Дакле, када се упоређују објекти, ово дозвољава употребу методе једнакости. Дизајниран је за употребу у ретким случајевима када је потребна семантика референтне једнакости.
ВеакХасхМап Имплементација чува само слабе референце на своје кључеве. Ово омогућава прикупљање смећа пара кључ / вредност када више нема референце на његове кључеве изван ВеакХасхМап.
Примарно се користи са оним кључним објектима код којих се тест идентитета објекта врши једнаким методама помоћу оператора ==.
ЦонцуррентХасхМап имплементира интерфејсе ЦонцуррентМап и Сериализабле. То је надограђена, побољшана верзија ХасхМап-а јер не функционише добро са окружењем са више навоја. У поређењу са ХасхМап-ом, он има већу стопу перформанси.
П # 23) Какав је квалитет доброг кључа за ХасхМап?
Одговор: Разумевајући како ХасхМап ради, лако је знати да они углавном зависе од једнаких и хасхЦоде метода кључних објеката. Дакле, добар кључ мора увек изнова давати исти хасхЦоде, без обзира на то када је преузет.
На исти начин, када се упоређују са методом екуалс, исти кључеви морају вратити труе, а различити кључеви фалсе. Због тога се каже да су најбољи кандидат за кључеве ХасхМап непроменљиве класе.
П # 24) Када можете да користите ТрееМап?
(слика извор )
Одговор: ТрееМап, као посебан облик ХасхМап-а, одржава редослед тастера подразумевано „природним редоследом“, као нешто што недостаје у ХасхМап-у. Можете га користити за сортирање објеката помоћу неког кључа.
На пример, ако желите да примените и одштампате речник по абецедном реду, можете користити ТрееМап заједно са ТрееСет-ом. Сортираће се аутоматски. Наравно, то сте могли да урадите и ручно, али посао ће се обавити ефикасније уз употребу ТрееМап-а. Можете га користити и ако је случајни приступ за вас од виталног значаја.
Разлика између питања
П # 25) Која је разлика између Збирке и Збирке?
Одговор:
Збирка | Збирке |
---|---|
Не можемо да користимо ЛистИтератор за прелазак скупа. | ЛистИтератор може прећи Листу у било ком смеру. |
То је интерфејс. | То је класа. |
Колекција представља групу предмета као једну целину. | Колекције дефинишу различите методе корисности за објекте колекције. |
То је основни интерфејс Цоллецтион Фрамеворк-а. | Колекције су класа корисности. |
Изводи структуре података Оквира за прикупљање. | Колекције садрже много различитих статичких метода за помоћ у манипулисању структуром података. |
П # 26) По чему се Арраи разликује од АрраиЛист?
Одговор:
Разлике између Арраи и АрраиЛист дате су у наставку:
Арраи | Низ листа |
---|---|
Низ је јако откуцана класа. | АрраиЛист је слободно откуцана класа. |
Низ се не може динамички променити, његова димензија је статична. | АрраиЛист се може динамички променити. |
Низу није потребно боксање и распакивање елемената. | АрраиЛист треба боксање и распакивање елемената. |
П # 27) Разликовати између АрраиЛист и ЛинкедЛист.
Одговор:
Низ листа | ЛинкедЛист |
---|---|
АрраиЛист користи динамички низ интерно за чување елемената. | ЛинкедЛист примењује двоструко повезану листу. |
АрраиЛист манипулација елементима је прилично спора. | ЛинкедЛист много брже манипулише својим елементима. |
АрраиЛист може деловати само као Листа. | ЛинкедЛист може да делује и као Листа и као Ред. |
Корисно за чување и приступ подацима. | Корисно за манипулисање подацима. |
П # 28) По чему се Итерабле разликује од Итератора?
Одговор:
Итерабле | Итератор |
---|---|
То је интерфејс пакета Јава.ланг. | То је интерфејс пакета Јава.утил. |
Даје само један апстрактни метод познат као Итератор. | Долази са две апстрактне методе - хасНект и нект. |
Представља низ елемената којима се може прећи. | Означава објекте са итерацијским стањем. |
П # 29) Наведите разлике између скупа и листе.
Одговор:
Комплет | Листа |
---|---|
Сет имплементира Сет интерфаце. | Листа имплементира интерфејс Лист. |
Скуп је неуређени скуп елемената. | Листа је уређени скуп елемената. |
Комплет не одржава редослед елемената током уметања. | Листа задржава редослед елемената током уметања. |
Скуп не дозвољава дуплиране вредности. | Листа дозвољава дуплиране вредности. |
Комплет не садржи застарелу класу. | Листа садржи Вектор, стару класу. |
Скуп дозвољава само једну нулу вредност. | Нема ограничења за број нултих вредности у Листу. |
П # 30) Која је разлика између Куеуе и Стацк?
Одговор:
Ред чекања | Гомила |
---|---|
Ред рада функционише на принципу ФИФО (Фирст-Ин-Фирст-Оут). | Стек ради на принципу „Прво-прво-изашло“ (ЛИФО). |
Уметање и брисање у ред се одвија на различитим крајевима. | Уметање и брисање се изводе са истог краја који се назива врх стека. |
Енкуеуе је име уметања, а декуеуе је брисање елемената. | Пусх је уметање, а Поп брисање елемената у Стацк-у. |
Има два показивача - један на први елемент листе (предњи) и један на последњи (задњи). | Има само један показивач који показује на горњи елемент. |
П # 31) По чему се СинглиЛинкедЛист и ДоублиЛинкедЛист разликују једни од других?
Одговор:
Списак појединачно повезаних | Двоструко повезана листа |
---|---|
Сваки чвор појединачно повезане листе састоји се од података и показивача на следећи чвор. | Двоструко повезана листа састоји се од података, показивача на следећи чвор и показивача на претходни чвор. |
Појединачно повезани списак може се прећи помоћу следећег показивача. | Двоструко повезаној листи може се прећи помоћу претходног и следећег показивача. |
Појединачно повезана листа заузима мање простора у поређењу са двоструко повезаном листом. | Двоструко повезана листа заузима пуно меморијског простора. |
Приступ елементима није врло ефикасан. | Приступ елементима је ефикасан. |
П # 32) По чему се ХасхМап разликује од ХасхТабле-а?
Одговор:
ХасхМап | ХасхТабле |
---|---|
ХасхМап наслеђује класу АбстрацтМап | ХасхТабле наслеђује класу Дицтионари. |
ХасхМап није синхронизован. | ХасхТабле је синхронизован. |
ХасхМап дозвољава више нулл вредности, али само један нулл кључ. | ХасхТабле не дозвољава нулл вредност или кључ. |
ХасхМап је бржи. | ХасхТабле је спорији од ХасхМап-а. |
ХасхМап може прећи Итератор. | ХасхТабле се не може прећи користећи итератор или пописивач. |
П # 33) Наведи разлику између АрраиЛист и Вецтор.
Одговор:
Низ листа | Вецтор |
---|---|
АрраиЛист није синхронизован. | Вектор је синхронизован. |
АрраиЛист није наследна класа. | Вектор је наследна класа. |
АрраиЛист повећава величину за половину АрраиЛист када је елемент уметнут изван његове величине. | Вектор повећава своју величину двоструко када је елемент уметнут изван његове величине. |
АрраиЛист није заштићен од нити | Вецтор је заштићен нити. |
П # 34) По чему се ФаилФаст разликује од Фаилсафеа?
Одговор:
ФаилФаст | ФаилСафе |
---|---|
Током понављања, није дозвољена модификација колекције. | Омогућава модификовање током понављања. |
Користи оригиналну колекцију за кретање. | Користи копију оригиналне колекције. |
Није потребна додатна меморија. | Потребна је додатна меморија. |
Баца ЦонцуррентМодифицатионЕкцептион. | Није изузетак изузетак. |
Закључак
Ова питања за интервју за Јава Цоллецтионс помоћи ће вам да се припремите за интервју. Ваша припрема за интервју за Јава Цоллецтионс мора бити дубока и опсежна, па проучите ова питања и добро разумејте концепт.
Ова питања не само да тестирају ваше знање већ и ваше присуство ума.
=> Овде припазите на једноставну серију Јава тренинга
Препоручено читање
- Водич за ЈАВА за почетнике: 100+ практичних Јава видео водича
- Основе Јава-а: Јава синтакса, Јава Цласс и основни Јава концепти
- Интервјуирајте питања и одговоре
- Питања и одговори за испитивање ЕТЛ-а
- 30 најважнијих ХТМЛ питања и одговора у интервјуима (ЛИСТА 2021)
- Топ 30+ популарних питања и одговора за интервју са краставцима
- Топ 40 питања и одговора за интервју за Јава 8 (најважније)
- Топ 30 питања и одговора за интервјуе са САС-а