Разлика између скупа и листе

Разлика између Арраи листе и повезане листе

Пре него што нађемо у стварним разликама, упознајмо нас у стварности?

Шта је скуп?

Наишли смо на концепт сета у математици и овде Сет мање-више значи исто. Да, то је колекција елемената и у већини случајева збирка сличних елемената. Можете покушати да додате ове елементе у Сет и покушате са штампањем да схватите како се они заправо чувају.

Унос у сет: 20, 50, 10, 30.

Заправо се чува у сету као 10, 20, 30, 50.

Елементи су овде сортирани и смештају се не по редоследу уметања. Ово је једна од карактеристика Сет-а да увек сортира елементе пре складиштења и наравно, постоје изузеци од њега и једна таква је ЛинкедхасхСет јер одржава редослед уметања елемената.

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

Како то имплементирати?

Само за боље разумевање, представили смо сет са његовом синтаксом. Из синтакса доле можете препознати различите типове скупа као што су ХасхСет и ТрееСет.

импорт јава.утил. *;

јавна класа Сетекампле

јавни статички воид маин (Стринг аргс [])

инт цоунт [] = 34, 22,10,60,30,22 25, 17, 76, 12, 88, 57;

Сет сет = нови ХасхСет ();

покушати

за (инт и = 0; и < 5; i++)

сет.адд (цоунт [и]);

Систем.оут.принтлн (постављено);

ТрееСет сортедСетег = нови ТрееСет (постављен);

Систем.оут.принтлн ("Овде имамо сортиран излаз:");

Систем.оут.принтлн (сортедСетег);

Систем.оут.принтлн ("Погледајте први елемент:" + (Интегер) сортедСет.фирст ());

Систем.оут.принтлн („Погледајте задњи елемент:„ + (Интегер) сортедСет.ласт ());

улов (изузетак е)

Излаз горњег кода је следећи.

[25, 17, 76, 12, 88]
Овде имамо сортирани излаз:
[12, 17, 25, 76, 88]
Погледајте први елемент: 12
Погледајте последњи елемент: 88

Шта је Листа?

Листа проширује колекцију слично као и Сет, али одржава редослед уметања. Покушајте да додате следећа имена на листу и видите како се додаје.

Унос у листу: Јохн, Нанци, Мари, Алице.

Како се чува у листи: Јохн, Нанци, Мари, Алице.

Само примјетите редослијед којим су убачени. Можете препознати да је „Јохн“ први елемент у улазу и излазу и да слиједи истим редоследом у који су уметнута имена. Ово чак можемо да сматрамо једним од главних карактеристика Листе.

Како то имплементирати?

Погледајмо неколико метода листе као што су АрраиЛист и ЛинкедЛист у синтакси испод.

импорт јава.утил. *;
пример јавне колекције

јавни статички воид маин (Стринг [] аргс)

Листа а1 = нови АрраиЛист ();
а1.адд ("Џон");
а1.адд („Нанци“);
а1.адд („Марија“);
а1.адд ("Алиса");
Систем.оут.принтлн ("Елементи АрраиЛист су");
Систем.оут.принт ("\ т" + а1);

Листа л1 = нови ЛинкедЛист ();
л1.адд („Силвиа“);
л1.адд ("Арјун");
л1.адд („Деепика“);
л1.адд ("Сусан");
Систем.оут.принтлн ();
Систем.оут.принтлн ("Елементи повезаних линкова су");
Систем.оут.принт ("\ т" + л1);

Излаз горње синтаксе је следећи.

АрраиЛист Елементс су

[Јохн, Нанци, Мари, Алице]

Елементи ЛинкедЛиста

[Силвиа, Арјун, Деепика, Сусан]

Из горњег кода је јасно да и АрраиЛист и ЛинкедЛист одржавају редослед уметања.

Како се разликују?

  • Методе и описи:

Сет и листа имају своје методе и погледајте неколико њих овде.

С.Но Сет - Методе Листа - Методе
1. додати() - То је додавање предмета у колекцију. воид адд (инт индекс, објект обј) - Додаје објект 'обј' на наведени 'индекс' листе позива и осигурава да ниједан елемент не буде преписан измјеном претходних елемената.
2. јасно() - То је уклањање предмета из колекције. боолеан аддАлл (инт индекс, колекција ц) - Свеукупну колекцију 'ц' додаје листи позива и на наведеном 'индексу'. Такође обезбеђује да ниједан елемент не буде преписан. Такође можемо проверити исправност његовог рада испитивањем повратне вредности. Враћа 'труе', ако је промена успешна у супротном, враћа вредност 'фалсе'.
3. садржи() - То је провера да ли сет садржи одређени објект у њему. Враћа вредност 'труе' ако је објект присутан у скупу. Добивање објекта (инт индекс) - Враћа елемент или објект на наведеном 'индексу'.
4. Празно() - Треба утврдити да ли колекција помаже у томе што нема елемената у њој. Враћа вредност 'труе' ако нема елемента. инт ластИндекОф (Објецт обј) - Делује слично као што је обрнуто индекс() Метод. Враћа задњу појаву наведеног објекта 'обј', а вриједност '1' се враћа ако на списку нема таквог објекта. Због тога се може користити и као садржи() Метода подешавања интерфејса.
6. уклони () - То је уклањање елемента из колекције тако што ћете га одредити као параметар методи. ЛистИтератор листИтератор () - Враћа итератор у почетни индекс листе.
7. величина () - То је бројање броја објеката или елемената које има збирка. ЛистИтератор листИтератор (инт индекс) - Помаже у понављању позива путем листе која почиње на наведеном 'индексу'.
8. - Уклони објект (инт индекс) - Обрише објект у наведеном 'индексу' и као резултат враћа избрисани елемент. Такође смањује индексе резултантних листа да би одражавао брисање.
9. - Скуп објекта (инт индекс, објект обј) - То је доделити објект 'обј' листи за позивање на наведеном 'индексу'.
10. - Листа подлисте (инт старт, инт енд) - То је укључивање објеката из индекса 'старт' до индекса 'енд' у листу која је позвала методу.
  • Одржавање налога за убацивање:

Скуп никада не одржава редослед елемената у који су убачени у њега, док га Листа одржава. Од овог правила постоји изузетак за ЛинкедХасхСет јер одржава редослед уметања, али други скуп као што је ХасхСет и ТрееСет разврстава елементе пре него што их сачува. Исто је описано у нижим примерима.

Комплет Улаз: Мачка, лутка, Аппле.

Похрањено као: Аппле, Цат, Лутка.

Унос листе: Мачка, лутка, Аппле.

Чува се као Цат, Лутка, Аппле.

  • Присуство дупликата:

Скуп никада не дозвољава дупликат док Листа то дозвољава. Ако се дупликата мора додати листи, она се преписује. Погледајте узорке дупликата Сет и Лист.

Подесите унос: 10, 20, 20, 50.

Чува се као: 10, 20, 50.

Листа уноса: 10, 20, 20, 50.

Чува се као: 10, 20, 20, 50.

  • Нулте вредности:

Скуп може имати само једну нулл вредност док Листа може имати више од једне нулл вредности и није ограничена на било који број.

Подесите унос: нулл, нулл, човек, пас, авион.

Чува се као: нулл, пас, човек, авион.

Унос листе: нулл, нулл, човек, пас, авион.

Чува се као: нулл, нулл, човек, пас, авион.

  • Употреба Итератора и ЛистИтератора:

Метода Итератор добро функционише са Сет и Листом док метода ЛистИтератор ради само са Листом. ЛистИтератор се може користити за кретање унапред и унапред кроз листу.

  • Присутност Легаци Цласс:

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

  • Имплементације:

Неколико реализација Сет-а су ХасхСет, ЛинкедХасхСет и ТрееСет. Неколико имплементација Листа укључује АрраиЛист и ЛинкедЛист.

Када користити Сет & Лист?

Употреба Сет анд Лист-а потпуно зависи од потребе одржавања редоследа уметања. Пошто смо сазнали да скуп никада не одржава редослед уметања, он се може користити када је поредак мањег значаја. На сличан начин користите листу када требате одржавати редослед уметања.

Разлике у табеларном облику:

С.Но Разлике у Комплет Листа
1. Инсертион Ордер Одржава редослијед уметања. Прво убачено остаје на првом месту и тако даље, без обзира на вредност. Никада не одржава редослед уметања.
2. Методе Користи методе попут додавања (), брисања (), садржи (), исЕмпти (), ремове () и сизе (). Користи методе као што су додавање (), аддАлл (), гет (), ластИндекОф (), ЛистИтератор () са или без параметра, ремове (), сет () и субЛист ().
3. Дупликати Никад не допушта дупликате и у случају таквих појављивања, вредност се преписује. Омогућује дупликате.
4. Нулте вредности Може имати само једну нулту вредност. Може имати било који број нуланих вредности.
5. Употреба Итератора () и листеИтератор () Користи само метод итератор (). Користи и итератор () као и листИтератор ().
6. Присутност Легаци Цласс Не постоји Легаци класа. Има као Легаци класу која се назива као вектор.
7. Имплементације Неколико реализација Сет интерфејса су ХасхСет, ЛинкедХасхСет и Трее Сет. Неколико реализација интерфејса листе су ЛинкедЛист и АрраиЛист.

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