logo

34 Јава збирке Питања за интервју

У Јави, анкетари најчешће постављају питања за интервју за прикупљање. Ево листе најчешће постављаних питања за интервјуе за збирке са одговорима.


1) Шта је оквир за колекцију у Јави?

Цоллецтион Фрамеворк је комбинација класа и интерфејса, који се користи за складиштење и манипулацију подацима у облику објеката. Обезбеђује различите класе као што су АрраиЛист, Вецтор, Стацк, и ХасхСет, итд. и интерфејсе као што су Лист, Куеуе, Сет, итд. за ову сврху.


2) Које су главне разлике између низа и колекције?

Низ и збирка су донекле слични у погледу чувања референци објеката и манипулације подацима, али се разликују на много начина. Главне разлике између низа и колекције су дефинисане у наставку:

  • Низови су увек фиксне величине, тј. корисник не може да повећава или смањује дужину низа у складу са својим захтевима или током извршавања, али у колекцији, величина се може динамички мењати по потреби.
  • Низови могу да чувају само објекте хомогеног или сличног типа, али у колекцији могу да се чувају хетерогени објекти.
  • Низови не могу да обезбеде ?реади-маде? методе за потребе корисника као што су сортирање, претраживање, итд. али збирка укључује готове методе за употребу.

3) Објасните различите интерфејсе који се користе у оквиру збирке?

Колекционарски оквир имплементира различите интерфејсе, интерфејс за колекцију и интерфејс мапе (јава.утил.Мап) су углавном коришћени интерфејси Јава Цоллецтион Фрамеворк-а. Листа интерфејса Цоллецтион Фрамеворк-а је дата у наставку:

1. Интерфејс колекције: Колекција (јава.утил.Цоллецтион) је примарни интерфејс и свака колекција мора да имплементира овај интерфејс.

Синтакса:

 public interface Collectionextends Iterable 

Где представља да је овај интерфејс генеричког типа

2. Интерфејс листе: Интерфејс листе проширује интерфејс колекције, и то је уређена колекција објеката. Садржи дуплиране елементе. Такође омогућава насумичан приступ елементима.

Синтакса:

 public interface List extends Collection 

3. Подесите интерфејс: Интерфејс Сет (јава.утил.Сет) је колекција која не може да садржи дуплиране елементе. Може да укључује само наслеђене методе интерфејса колекције

Синтакса:

 public interface Set extends Collection 

Интерфејс реда: Интерфејс реда (јава.утил.Куеуе) дефинише структуру података реда, која складишти елементе у облику ФИФО (први ушао први изашао).

Синтакса:

 public interface Queue extends Collection 

4. Интерфејс за декуеуе: то је двострани ред. Омогућава уметање и уклањање елемената са оба краја. Имплантира својства и стека и реда тако да може да изврши ЛИФО (последњи ушао, први изашао) стек и ФИФО (први ушао први изашао) ред, операције.

Синтакса:

 public interface Dequeue extends Queue 

5. Интерфејс мапе: Мапа (јава.утил.Мап) представља складиште пара кључева и вредности елемената. Интерфејс мапе не имплементира интерфејс колекције. Може да садржи само јединствени кључ, али може имати дуплиране елементе. Постоје два интерфејса која имплементирају мапу у Јави, а то су интерфејс мапе и сортирана мапа.

како онемогућити режим програмера у андроиду

4) Која је разлика између АрраиЛист и Вецтор?

Не.Низ листаВецтор
1)АрраиЛист није синхронизован.Вектор је синхронизован.
2)АрраиЛист није застарела класа.Вецтор је застарела класа.
3)АрраиЛист повећава своју величину за 50% величине низа.Вектор повећава своју величину удвостручавањем величине низа.
4)АрраиЛист није ?тхреад-сафе? пошто није синхронизовано.Векторска листа је ?тхреад-сафе? пошто је сваки метод синхронизован.

5) Која је разлика између АрраиЛист и ЛинкедЛист?

Не.Низ листаЛинкедЛист
1)АрраиЛист користи динамички низ.ЛинкедЛист користи дупло повезану листу.
2)АрраиЛист није ефикасан за манипулацију јер је потребно превише.ЛинкедЛист је ефикасан за манипулацију.
3)АрраиЛист је бољи за складиштење и преузимање података.ЛинкедЛист је бољи за манипулисање подацима.
4)АрраиЛист пружа насумичан приступ.ЛинкедЛист не пружа насумичан приступ.
5)АрраиЛист заузима мање меморије јер чува само објекатЛинкедЛист заузима више меморије, јер чува објекат као и адресу тог објекта.

6) Која је разлика између Итератора и ЛистИтератора?

Итератор прелази елементе само у правцу унапред, док ЛистИтератор прелази елементе у смеру напред и назад.

Не.ИтераторЛистИтератор
1)Итератор прелази елементе само у правцу унапред.ЛистИтератор прелази елементе у смеру уназад и унапред.
2)Итератор се може користити у листи, скупу и реду чекања.ЛистИтератор се може користити само у Листи.
3)Итератор може само да изврши операцију уклањања док пролази кроз колекцију.ЛистИтератор може да изврши ?адд,? ?ремове,? и ?сет? операција приликом преласка збирке.

7) Која је разлика између Итератора и Енумерације?

Не.ИтераторНабрајање
1)Итератор може да прелази старе и ненаслеђе елементе.Набрајање може прећи само старе елементе.
2)Итератор је брз.Набрајање није брзо.
3)Итератор је спорији од набрајања.Набрајање је брже од Итератора.
4)Итератор може извршити операцију уклањања док прелази колекцију.Набрајање може извршити само операцију преласка на колекцију.

8) Која је разлика између листе и скупа?

И Листа и Сет проширују интерфејс за прикупљање. Међутим, постоје неке разлике између оба које су наведене у наставку.

  • Листа може да садржи дупликате елемената док Сет укључује јединствене ставке.
  • Листа је уређена колекција која одржава редослед уметања, док је Сет неуређена колекција која не чува редослед уметања.
  • Интерфејс листе садржи једну застарелу класу која је векторска класа док Сет интерфејс нема никакву застарелу класу.
  • Интерфејс листе може дозволити н број нул вредности, док интерфејс Сет дозвољава само једну нул вредност.

9) Која је разлика између ХасхСет-а и ТрееСет-а?

ХасхСет и ТрееСет, обе класе, имплементирају Сет интерфејс. Разлике између оба су наведене у наставку.

  • ХасхСет не одржава никакав ред, док ТрееСет одржава растући редослед.
  • ХасхСет је ограничен хеш табелом, док је ТрееСет имплементиран структуром дрвета.
  • ХасхСет ради брже од ТрееСет-а.
  • ХасхСет подржава ХасхМап, док ТрееСет подржава ТрееМап.

10) Која је разлика између Сета и Мапе?

Разлике између скупа и мапе су дате у наставку.

  • Скуп садржи само вредности док мапа садржи и кључ и вредности.
  • Скуп садржи јединствене вредности док мапа може да садржи јединствене кључеве са дуплираним вредностима.
  • Скуп садржи један број нул вредности, док мапа може укључити један нул кључ са н бројем нул вредности.

11) Која је разлика између ХасхСет-а и ХасхМап-а?

Разлике између ХасхСет-а и ХасхМап-а су наведене у наставку.

  • ХасхСет садржи само вредности док ХасхМап укључује унос (кључ, вредност). ХасхСет се може понављати, али ХасхМап треба да се конвертује у Сет да би се поновио.
  • ХасхСет имплементира Сет интерфејс док ХасхМап имплементира интерфејс Мап
  • ХасхСет не може имати дупле вредности док ХасхМап може да садржи дупликате вредности са јединственим кључевима.
  • ХасхСет садржи једини број нул вредности док ХасхМап може да држи један нул кључ са н бројем нул вредности.

12) Која је разлика између ХасхМап-а и ТрееМап-а?

Разлике између ХасхМап-а и ТрееМап-а су дате у наставку.

  • ХасхМап не одржава редослед, али ТрееМап одржава растући редослед.
  • ХасхМап се имплементира помоћу хеш табеле, док је ТрееМап имплементиран помоћу структуре дрвета.
  • ХасхМап се може сортирати по кључу или вредности, док се ТрееМап може сортирати по кључу.
  • ХасхМап може да садржи нул кључ са више нул вредности, док ТрееМап не може да садржи нул кључ, али може имати више нул вредности.

13) Која је разлика између ХасхМап-а и Хасхтабле-а?

Не.ХасхМапХасхтабле
1)ХасхМап није синхронизован.Хасхтабле је синхронизован.
2)ХасхМап може да садржи један нулл кључ и више нул вредности.Табела хеширања не може да садржи никакав нул кључ или нулту вредност.
3)ХасхМап није ?тхреад-сафе,? тако да је корисно за апликације без навоја.Хасхтабле је безбедна за нити и може се делити између различитих нити.
4)4) ХасхМап наслеђује класу АбстрацтМапХасхтабле наслеђује класу Речник.

14) Која је разлика између Цоллецтион и Цоллецтионс?

Разлике између Збирке и Колекција су дате у наставку.

  • Колекција је интерфејс, док је Цоллецтионс класа.
  • Интерфејс за прикупљање обезбеђује стандардну функционалност структуре података за листу, скуп и ред. Међутим, класа Цоллецтионс је да сортира и синхронизује елементе колекције.
  • Интерфејс Цоллецтион обезбеђује методе које се могу користити за структуру података, док класа Цоллецтионс обезбеђује статичке методе које се могу користити за различите операције на колекцији.

15) Која је разлика између Цомпарабле и Цомпаратор?

Не.УпоредивоЦомпаратор
1)Цомпарабле пружа само једну врсту секвенце.Компаратор пружа више врста секвенци.
2)Обезбеђује један метод под називом цомпареТо().Обезбеђује један метод под називом цомпаре().
3)Налази се у пакету јава.ланг.Налази се у пакету јава.утил.
4)Ако имплементирамо Цомпарабле интерфејс, стварна класа је модификована.Стварна класа се не мења.

16) Шта разумете под БлоцкингКуеуе?

БлоцкингКуеуе је интерфејс који проширује интерфејс за ред чекања. Обезбеђује истовременост у операцијама као што су преузимање, уметање, брисање. Док преузима било који елемент, он чека да ред не буде празан. Док складишти елементе, чека расположиви простор. БлоцкингКуеуе не може да садржи нулте елементе, а имплементација БлоцкингКуеуе је безбедна за нити.

Синтакса:

 public interface BlockingQueue extends Queue 

17) Која је предност датотеке Пропертиес?

Ако промените вредност у датотеци са својствима, не морате поново да компајлирате јава класу. Дакле, апликација олакшава управљање. Користи се за чување информација које треба често мењати. Размотрите следећи пример.

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

Излаз

 system oracle 

18) Шта ради метода хасхЦоде()?

Метод хасхЦоде() враћа вредност хеш кода (цео број).

Метод хасхЦоде() враћа исти цео број ако су два кључа (позивањем методе екуалс()) идентична.

Међутим, могуће је да два хеш кодна броја могу имати различите или исте кључеве.

Ако два објекта не дају једнак резултат коришћењем методе екуалс(), тада ће метода хасхцоде() обезбедити различите целобројне резултате за оба објекта.


19) Зашто замењујемо метод екуалс()?

Метода екуалс се користи за проверу да ли су два објекта иста или не. Треба га заобићи ако желимо да проверимо објекте на основу својства.

На пример, Емплоиее је класа која има 3 члана података: ИД, име и плата. Међутим, желимо да проверимо једнакост предмета запослених по плати. Затим морамо да заменимо метод екуалс().


20) Како синхронизовати елементе листе, скупа и мапе?

Да, класа Цоллецтионс пружа методе да се елементи листе, сет или мапе синхронизују:

јавна статичка листа синцхронизедЛист(Листа л){}
јавни статички Сет синцхронизедСет(Сет с){}
јавни статички СортедСет синцхронизедСортедСет(СортедСет с){}
јавна статичка мапа синхронизованаМапа(Мапа м){}
јавни статички СортедМап синцхронизедСортедМап(СортедМап м){}

21) Која је предност генеричке колекције?

Постоје три главне предности коришћења генеричке колекције.

виндовс.опен јавасцрипт
  • Ако користимо генеричку класу, не треба нам превођење типа.
  • Безбедан је за типове и проверава се у време компајлирања.
  • Генерички потврђује стабилност кода тако што га чини да се грешка може открити у време компајлирања.

22) Шта је хеш-судар у Хасхтабле-у и како се њиме рукује у Јави?

Два различита кључа са истом хеш вредношћу позната су као хеш колизија. Два одвојена уноса ће се чувати у једној хеш канти да би се избегла колизија. Постоје два начина да се избегне хеш колизија.

  • Сепарате Цхаининг
  • Отворите Аддрессинг

23) Шта је класа Речник?

Класа Речник пружа могућност чувања парова кључ-вредност.


24) Која је подразумевана величина фактора оптерећења у колекцији заснованој на хеширању?

Подразумевана величина фактора оптерећења је 0,75 . Подразумевани капацитет се израчунава као почетни капацитет * фактор оптерећења. На пример, 16 * 0,75 = 12. Дакле, 12 је подразумевани капацитет Мапе.


25) Шта подразумевате под брзим неуспехом?

Итератор у Јави који одмах избацује ЦонцуррентмодифицатионЕкцептион, ако дође до било какве структурне модификације, назива се итератором који је брз. Фаил-фатс итератор не захтева никакав додатни простор у меморији.


26) Која је разлика између Арраи и АрраиЛист?

Главне разлике између Арраи-а и АрраиЛист-а су наведене у наставку.

СННизНиз листа
1Низ је фиксне величине, што значи да не можемо променити величину низа према потреби.АрраиЛист није фиксне величине и можемо је мењати динамички.
2Низови су статичког типа.АрраиЛист је динамичке величине.
3Низови могу да чувају примитивне типове података као и објекте.АрраиЛист не може да складишти примитивне типове података већ само објекте.

27) Која је разлика између дужине низа и величине АрраиЛист-а?

Дужина низа се може добити коришћењем својства дужине док АрраиЛист не подржава својство дужине, али можемо користити метод сизе() да бисмо добили број објеката на листи.

Проналажење дужине низа

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

Проналажење величине АрраиЛист

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

28) Како претворити АрраиЛист у Арраи и Арраи у АрраиЛист?

Можемо да конвертујемо Арраи у АрраиЛист коришћењем методе асЛист() класе Арраис. Метода асЛист() је статичка метода класе Арраис и прихвата објекат Лист. Размотрите следећу синтаксу:

одјавите се са гоогле налога на андроиду
 Arrays.asList(item) 

АрраиЛист можемо претворити у Арраи користећи тоАрраи() методу класе АрраиЛист. Размотрите следећу синтаксу да бисте претворили АрраиЛист у објекат Лист.

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

29) Како направити Јава АрраиЛист само за читање?

Можемо добити јава АрраиЛист само за читање позивањем методе Цоллецтионс.унмодифиаблеЦоллецтион(). Када дефинишемо АрраиЛист као само за читање, онда не можемо извршити никакву модификацију у колекцији помоћу метода �адд(), ремове() или сет().


30) Како уклонити дупликате из АрраиЛист-а?

Постоје два начина за уклањање дупликата из АрраиЛист-а.

    Коришћење ХасхСет-а:Коришћењем ХасхСет-а можемо уклонити дуплирани елемент из АрраиЛист-а, али он тада неће сачувати редослед уметања.Коришћење ЛинкедХасхСет-а:Такође можемо да одржавамо редослед уметања користећи ЛинкедХасхСет уместо ХасхСет.

Процес уклањања дупликата елемената са АрраиЛист користећи ЛинкедХасхСет:

  • Копирајте све елементе АрраиЛист у ЛинкедХасхСет.
  • Испразните АрраиЛист користећи методу цлеар(), која ће уклонити све елементе са листе.
  • Сада копирајте све елементе ЛинкедХасхсет-а у АрраиЛист.

31) Како преокренути АрраиЛист?

Да бисмо преокренули АрраиЛист, можемо користити метод реверсе() класе Цоллецтионс. Размотрите следећи пример.

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

Излаз

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

32) Како сортирати АрраиЛист у опадајућем редоследу?

Да сортирамо АрраиЛист у опадајућем редоследу, можемо користити метод реверсеОрдер класе Цоллецтионс. Размотрите следећи пример.

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

Излаз

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

33) Како да синхронизујем АрраиЛист?

АрраиЛист можемо синхронизовати на два начина.

  • Коришћење методе Цоллецтионс.синцхронизедЛист().
  • Коришћење ЦопиОнВритеАрраиЛист

3. 4) Када користити АрраиЛист и ЛинкедЛист?

ЛинкедЛистс је боље користити за операције ажурирања, док је АрраиЛистс боље користити за операције претраживања.