Шта је Вецтор у Јави и како га користимо?



Овај блог на тему „Вектори у Јави“ помоћи ће вам да разумете по чему се векторска класа разликује од АрраиЛист-а и помоћи вам да научите о различитим укљученим методама.

Вектори у су једна од најчешће коришћених структура података у свету програмирања.Сви то знамо Низови су структуре података које податке чувају линеарно. Вектори податке такође складиште линеарно, али за разлику од низова, они немају фиксну величину. Уместо тога, њихова величина се може повећати на захтев.

Векторска класа је подређена класа АбстрацтЛист разред и спроводи на Листа .Да бисмо користили Вецторс, прво морамо увести класу Вецтор из пакета јава.утил:





импорт јава.утил.Вецтор

У овом чланку ћемо разговарати о следећим концептима вектора:



Хајде да почнемо!

Предност с од Вецтор у Јави

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

Својство динамичке величине није својствено векторима у Јави. Друга структура података, позната као АрраиЛист, такође показује својство динамичке величине. Међутим, Вектори се разликују од АрраиЛистс-а из неколико разлога:

  • Прво, Вектори су синхронизовани што му даје предност у односу на у односу на програме јер постоје ризици од корупције података.
  • Друго, Вектори имају неке старе функције које се могу применити само на векторе, а не и на АрраиЛистс.

Како приступити елементима у вектору

Члановима података можемо приступити једноставно помоћу индекса елемента, баш као што приступимо елементима у Низовима.



Пример- Ако желимо да приступимо трећем елементу у вектору в, једноставно га називамо в [3].

пронађи највећи број у низу јава

Вектори Конструктори

Испод су наведене вишеструке варијације вектора конструктори доступно за употребу:

  1. Вектор (инт ИнитиалЦапацити, инт Инцремент) - Конструише вектор са датим почетним капацитетом и његовим Прирастом у величини.
  2. Вектор (инт почетни капацитет) - Конструише празан вектор са датим почетним капацитетом. У овом случају, прираштај је нула.
  3. Вецтор () - Конструише задани вектор капацитета 10.
  4. Вектор (колекција ц) - Конструише вектор са датом колекцијом, редослед елемената је исти оном који враћа итератор колекције.

Постоје и три заштићена параметра у векторима

  1. Инт цапацитиИнцремент () - Аутоматски повећава капацитет вектора када величина постане већа од капацитета.
  2. Инт елементЦоунт () - рећи број елемената у вектору
  3. Објецт [] елементДата () - низ у коме се чувају елементи вектора

Најчешће грешке у декларацији вектора

  • Вектор баца знак ИллегалАргументЕкцептион ако је ИнитиалСизе дефинисаног вектора негативан.
  • Ако је наведена колекција нулл, она баца НуллПоинтерЕкцептион

Белешка:

  1. Ако векторски прираштај није наведен, онда ће то бити капацитетудвостручен у сваком циклусу повећања.
  2. Капацитет вектора не може бити мањи од величине, може му бити једнак.

Размотримо пример иницијализације Векторских конструктора.

Пример: Иницијализација векторских конструктора

/ Јава код који илуструје Вецтор Цонструцторс импорт јава.утил. * Јавна класа Маин {публиц статиц воид маин (Стринг [] аргс) {// креира задати вектор Вецтор в1 = нев Вецтор () // креира вектор задате величине Вецтор в2 = нови вектор (20) // креира вектор задате величине и увећања вектор в3 = нови вектор (30,10) в2.адд (100) в2.адд (100) в2.адд (100) // креира вектор са датим колекција Вецтор в4 = нови Вецтор (в2) Систем.оут.принтлн ('Вецтор в1 капацитета' + в1.цапацити ()) Систем.оут.принтлн ('Вецтор в2 оф цапацити' + в2.цапацити ()) Систем.оут .принтлн ('Вецтор в3 капацитета' + в3.цапацити ()) Систем.оут.принтлн ('Вецтор в4 капацитета' + в4.цапацити ())}

Оутпут

Конструктори - Вектори у Јави - Едурека

Алокација меморије вектора

До сада сте морали да схватите да Вектори немају фиксну величину, већ имају могућност динамичке промене величине. Могло би се помислити да вектори додељују неодређено дуг простор за чување објеката. Али то није случај. Вектори могу променити своју величину на основу два поља „капацитет“ и „капацитетИнкремент“. У почетку се додељује величина једнака пољу „капацитет“ када се декорише вектор. Можемо уметнути елементе једнаке капацитету. Али чим се убаци следећи елемент, он повећава величину низа за величину ‘цапацитиИнцремент’. Стога је у стању да динамички мења своју величину.

За подразумевани конструктор , капацитет се удвостручује кад год је капацитет пун и треба уметнути нови елемент.

Пример - Претпоставимо да имамо вектор ИнитиалЦапацити 5 и цапацитиИнцремент од 2. Дакле, почетна величина вектора је 5 елемената У овај вектор убацујемо 5 елемената један по један, наиме 1,2,3,4,5. Када покушамо да уметнемо други елемент у вектор, наиме 6, величина вектора ће се увећати за 2. Отуда је величина вектора сада 7. Дакле, вектор лако прилагођава своју величину према бр. елемената.

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

Методе у вектору

Погледајмо неколико врло често коришћених векторских метода.

  • Логичко додавање (објекат о) - Додаје елемент на крају вектора.
// Јава код приказује логичку методу адд () импорт јава.утил. * Јавна класа Маин {публиц статиц воид маин (Стринг [] аргс) {Вецтор в = нев Вецтор () // Ствара задати вектор в.адд (1 ) // Додаје 1 на крају листе в.адд ('Јава') // Додаје 'Јава' на крају листе в.адд ('је') // Додаје 'је' на крају листа в.адд ('Забава') // Додаје 'Забава' на крају листе Систем.оут.принтлн ('Вектор је' + в)}}

Оутпут

  • Воид адд (инт Индек, Е елемент) - Додаје дати елемент са наведеним индексом у вектор
// Јава код приказује воид адд () методу увоз јава.утил. * Јавна класа Маин {јавна статичка воид главна (Стринг [] аргс) {Вецтор в = нев Вецтор () // Ствара задати вектор в.адд (0 , 1) // Додаје 1 у индекс 0 в.адд (1, 'Јава') // Додаје 'Јава' у индекс 1 в.адд (2, 'је') // Додаје 'је' у индекс 2 в.адд (3, 'Забава') // Додаје 'Забава' у индекс 3 в.адд (4, '!!!') // Додаје 'Забава' у индекс 4 Систем.оут.принтлн (' Вектор је '+ в)}}

Оутпут

  • Логичко уклањање (објекат о) - Уклања уклањање елемента са датим индексом у вектору
// Јава код који приказује логичку методу ремове () импорт јава.утил. * Јавна класа Маин {публиц статиц воид маин (Стринг [] аргс) {Вецтор в = нев Вецтор () // Ствара задати вектор в.адд (1 ) // Додаје 1 на крају листе в.адд ('Јава') // Додаје 'Јава' на крају листе в.адд ('је') // Додаје 'је' на крају листа в.адд ('Забава') // Додаје 'Забава' на крају листе Систем.оут.принтлн ('Вектор пре уклањања' + в) в.ремове (1) Систем.оут.принтлн ('Вектор после уклањање '+ в)}}

Оутпут

  • Боолеан ремовеЕлемент ( Објект обј) - Бриса елемент под именом обј (не индексним бројем)
// Јава код који приказује методу ремовеЕлемент () импорт јава.утил. * Јавна класа Маин {публиц статиц воид маин (Стринг [] аргс) {Вецтор в = нев Вецтор () // Ствара задати вектор в.адд (1) // Додаје 1 на крају листе в.адд ('Јава') // Додаје 'Јава' на крају листе в.адд ('је') // Додаје 'је' на крају листе в.адд ('Забава') // Додаје 'Забава' на крају листе Систем.оут.принтлн ('Вектор пре уклањања' + в) в.ремовеЕлемент ('Јава') Систем.оут.принтлн ('Вектор након уклањања '+ в)}}

Оутпут

  • Инт величина () - Враћа величину вектора.
// Јава код који приказује методу сизе () импорт јава.утил. * Публиц цласс Маин {публиц статиц воид маин (Стринг [] аргс) {Вецтор в = нев Вецтор () // Ствара задати вектор в.адд (0, 1) // Додаје 1 у индекс 0 в.адд (1, 'Јава') // Додаје 'Јава' у индекс 1 в.адд (2, 'је') // Додаје 'је' у индекс 2 в.адд (3, 'Фун') // Додаје 'Фун' у индекс 3 Систем.оут.принтлн ('Векторска величина је' + в.сизе ())}}

Оутпут

  • Интерни капацитет () - Враћа капацитет вектора
// Јава код који приказује капацитет () метода јава.утил. * Јавна класа Маин {јавна статичка воид главна (Стринг [] аргс) {Вецтор в = нев Вецтор () // Ствара задати вектор в.адд (0, 1) // Додаје 1 у индекс 0 в.адд (1, 'Јава') // Додаје 'Јава' у индекс 1 в.адд (2, 'је') // Додаје 'је' у индекс 2 в.адд (3, 'Забава') // Додаје 'Забаву' у индекс 3 Систем.оут.принтлн ('Векторски капацитет је' + в.цапацити ())}}

Оутпут

  • Објецт гет (инт индек) - Враћа елемент на задату позицију у вектору
// Јава код који приказује методу гет () увоз јава.утил. * Јавна класа Маин {јавна статичка воид главна (Стринг [] аргс) {Вецтор в = нев Вецтор () // Ствара задати вектор в.адд (1) // Додаје 1 на крају листе в.адд ('Јава') // Додаје 'Јава' на крају листе в.адд ('је') // Додаје 'је' на крају листе в.адд ('Забава') // Додаје 'Забаву' на крају листе Систем.оут.принтлн ('Елемент у индексу 1 је' + в.гет (1))}}

Оутпут

  • Објецт фирстЕлемент () - Враћа први елемент
// Јава код који приказује методу фирстЕлемент () импорт јава.утил. * Јавна класа Маин {публиц статиц воид маин (Стринг [] аргс) {Вецтор в = нев Вецтор () // Ствара задати вектор в.адд (1) // Додаје 1 на крају листе в.адд ('Јава') // Додаје 'Јава' на крају листе в.адд ('је') // Додаје 'је' на крају листе в.адд ('Забава') // Додаје 'Забаву' на крају листе Систем.оут.принтлн ('Први елемент је' + в.фирстЕлемент ())}}

Оутпут

  • Објект ластЕлемент () - Враћа последњи елемент
// Јава код приказује ластЕлемент () методу увоз јава.утил. * Јавна класа Маин {публиц статиц воид маин (Стринг [] аргс) {Вецтор в = нев Вецтор () // Ствара задати вектор в.адд (1) // Додаје 1 на крају листе в.адд ('Јава') // Додаје 'Јава' на крају листе в.адд ('је') // Додаје 'је' на крају листе в.адд ('Забава') // Додаје 'Забаву' на крају листе Систем.оут.принтлн ('Последњи елемент је' + в.ластЕлемент ())}}

Оутпут

  • Булове једнаке (објекат о) - Поређује вектор са наведеним објектом ради једнакости. Враћа тачно ако су сви елементи тачни у одговарајућим индексима
// Јава код приказује методу боолеан екуалс () импорт јава.утил. * Публиц цласс Маин {публиц статиц воид маин (Стринг [] аргс) {Вецтор в = нев Вецтор () // Ствара задати вектор Вецтор вцопи = нев Вецтор () в.адд (1) // Додаје 1 на крају листе в.адд ('Јава') // Додаје 'Јава' на крају листе в.адд ('је') // Додаје ' је 'на крају листе в.адд (' Забава ') // Додаје' Забава 'на крају листе вцопи.адд (0,1) // Додаје 1 на индекс 0 вцопи.адд (1, 'Јава') // Додаје 'Јава' у индекс 1 вцопи.адд (2, 'је') // Додаје 'је' у индекс 2 вцопи.адд (3, 'Забава') // Додаје 'Забаву' у индексу 3 вцопи.адд (4, '!!!') // Додаје 'Забава' у индекс 4 ако (в.екуалс (вцопи)) Систем.оут.принтлн ('Оба вектора су једнака') елсе Систем .оут.принтлн ('Вектори нису једнаки')}}

Оутпут

  • Воид тримтосизе () - Овим методом се уклања додатни капацитет и задржава капацитет само за држање елемената, тј. Једнак величини
// Јава код који приказује методу тримТоСизе () увоз јава.утил. * Јавна класа Маин {јавна статичка воид главна (Стринг [] аргс) {Вецтор в = нев Вецтор () // Ствара задати вектор в.адд (0, 1) // Додаје 1 у индекс 0 в.адд (1, 'Јава') // Додаје 'Јава' у индекс 1 в.адд (2, 'је') // Додаје 'је' у индекс 2 в.адд (3, 'Фун') // Додаје 'Забава' у индекс 3 Систем.оут.принтлн ('Векторски капацитет је' + в.цапацити ()) в.тримТоСизе () Систем.оут.принтлн ( 'Векторски капацитет је' + в.цапацити ())}}

Оутпут


Остале важне методе

До сада сте сигурно имали добру идеју о томе како радити са векторима. Ако желите да истражите више векторских метода, погледајте доњу табелу.

Назив методе Функција методе

Боолеан исЕмпти ()

проверава да ли елементи постоје или не

Боолеан садржи (објекат о)

користи се за проверу постојања одређеног елемента, рецимо о

инт индекОф (објекат о)

Враћа индекс елемента о

воид ремовеРанге (инт с, инт е)

уклања елементе из вектора који почињу од с и завршавају са (е-1)

воид цлеар ()

уклања све елементе

воид сецуреЦапацити (инт ц)

Повећава капацитет за ц

воид сетСизе (инт с)

Величину поставља на с. Ако је с> величина, додатни капацитет се попуњава нулл вредностима. Ако је с

Објецт елементАт (инт а)

враћа елемент који постоји под индексним бројем а

како претворити у бинарни у питхон-у

Скуп објеката (инт а, Објект о)

замењује елемент присутан у индексу а датим елементом о

Објецт [] тоАрраи ()

враћа низ који садржи исте елементе као и вектор

Клон објекта ()

Векторски објекат се копира

Боолеан аддАлл (Колекција ц)

додаје све елементе колекције ц у вектор

Логички аддАлл (инт а, Збирка ц)

убацује све елементе колекције ц до вектора при наведеном индексу а

Боолеан ретаинАлл (Колекција ц)

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

Листа подлиста (инт с, инт е)

враћа елементе као објекат листе, почевши од с и завршавајући са (е-1) из вектора.

Како се завршава свака добра ствар, тако се и наш блог на Вецторс у . Надамо се да смо на овом блогу успели да покријемо све аспекте јава вектора и да сте успели да прикупите неко знање у вези са векторима.

Обавезно вежбајте што је више могуће и вратите своје искуство.

Погледајте Едурека, поуздана компанија за учење на мрежи са мрежом од више од 250 000 задовољних ученика раширених широм света. Овде смо да вам помогнемо у сваком кораку на вашем путовању, јер поред тога што постављате питања о јава интервјуу, осмислили смо наставни план и програм који је дизајниран за студенте и професионалце који желе да буду Јава програмери.

Имате питање за нас? Молимо вас да га поменете у одељку за коментаре овог „Вектора на Јави“ чланак и јавићемо вам се у најкраћем могућем року.