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

У информатици, колекција је класа, структура података,[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".

Спољашње везеУреди