Колекција (програмирање)

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу

У информатици, колекција је класа, структура података,[1][2] или апстрактни тип података (АДТ) чије су инстанце колекције других објеката. Другим речима, они чувају објекте на орагнизован начин који прати специфична приступна правила. Величина колекције зависи од броја објеката (елемента) које садржи. Основна примена различитих типова колекција може варирати у комплексноти простора и времена, која пружа флексиблиност при бирању тачне имплементације за дати сценарио. 

Преглед[уреди]

На колекције се може гледати на три начина:

  • приступ, то је начин приступу објекта колекције. У случају низова, пристип се извршава са индексом низа. У случају стекова, приступ се извршава према ЛИФО(последњи унутра, први споља) редоследу (алтернативно име: ФИЛО, први унутра, последњи споља)[3] и у случају редова извршава се према ФИФО(први унутра, први споља) редоследу (алтернативно име: ЛИЛО, последњи унутра, последњи споља);[3]FIFO(investopedia.com)</ref>[4]
  • складиштење, начин складиштења објеката колекције,
  • прелажење, то је начин прелажења објеката колекције.

За колекције класа се очекује да имплементују методе да раде следеће:

  • направити празну колекцију;
  • убацити објекте у колекцију;
  • избрисати објекте из колекције;
  • избрисати све објекте у колекцији (очисти);
  • приступити објектима у колекцији;
  • приступити одређеном броју објеката у колекцији (величина).

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

Колекције базиране на референцама и вредностима[уреди]

Колекције се могу поделити у две групе:

  • колекције базиране на вредностима;
  • колекције базиране на референцама.

Колекције базиране на вредностима[уреди]

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

Колекције базиране на референцама[уреди]

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

Слободна вредности и асоцијативне колекције[уреди]

Колекције се могу поделити у две групе:

  • колекције слободне вредности;
  • асоцијативне колекције.

Колекције слободне вредности[уреди]

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

Асоцијативне колекције[уреди]

Асоцијативни низ, мапа, или речник је колекција која се састоји из (кључ, вредност) парова, таквих да сваки кључ се појављује највише једном у колекцији. Кључ служи да се пронађе вредност, објекта, ако је сачуван у колекцији.

Примери колекција[уреди]

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

Графичке колекције[уреди]

Помоћни алати виџета користе специјалне виџете који се називају Колекције за груписање других виџета (прозора, панела,...). Осим графичких особина, имају исти тип понашања као колекције класа, пошто чувају листу дечијих виџета, и дозвољавају додавање, уклањање, или повратак виџета међу њиховом децом. 

Имплементације[уреди]

Види још[уреди]

Референце[уреди]

  1. ^ Paul E. Black (ed.), entry for data structure in Dictionary of Algorithms and Data Structures.
  2. ^ Entry data structure in the Encyclopædia Britannica (2009) Online entry Accessed on Oct 04, 2011.
  3. 3,0 3,1 LIFO(investopedia.com)
  4. ^ FIFO(businessdictionary.com)
  5. ^ "PL/SQL Collections and Records".

Спољашње везе[уреди]