Википедия

Коллекция данных

Коллекция в программировании — программный объект, содержащий в себе, тем или иным образом, набор значений одного или различных типов, и позволяющий обращаться к этим значениям.

Коллекция позволяет записывать в себя значения и извлекать их. Назначение коллекции — служить хранилищем объектов и обеспечивать доступ к ним. Обычно коллекции используются для хранения групп однотипных объектов, подлежащих стереотипной обработке. Для обращения к конкретному элементу коллекции могут использоваться различные методы, в зависимости от её логической организации. Реализация может допускать выполнение отдельных операций над коллекциями в целом. Наличие операций над коллекциями во многих случаях может существенно упростить программирование.

Коллекции и контейнеры

Коллекция или контейнер группирует некоторое переменное (возможно, нулевое) число элементов данных, которые имеют некоторое общее значение для решения проблемы. Над ними проводятся операции некоторым способом. Обычно элементы данных имеют один и тот же тип, или же (в языках, поддерживающих наследование) типы будут получены из некоторого общего типа-предка. Коллекция — понятие, применимое к абстрактным типам данных, и не предписывает определённую реализацию через конкретную структуру данных, хотя часто существует устоявшийся выбор. Контейнеры в теории типов — абстракции, которые разрешают коллекциям различных структур, таких как списки и деревья, быть представленными некоторым однородным способом. (Унарный) контейнер определён индексами S и семейством типов на позициях P, индексируемыми через S: задана функция от типов индексов к типу элементов. Контейнеры можно рассматривать как канонические классы для коллекций различных типов. Списки индексируются через натуральные числа (включая ноль). Для списков определён максимальный индекс. Для деревьев структура дерева может быть выражена через индексы без конкретной информации о содержимом узлов. Индексы элементов структуры в памяти изоморфны путям от корня дерева до его узлов.

Классификация

По общим характеристикам

  • Коллекция может иметь постоянный либо динамически изменяющийся размер. В первом случае в коллекцию может быть записано только строго определённое количество объектов, во втором — коллекция допускает размещение стольких объектов, сколько необходимо (разумеется, в пределах, задаваемых техническими ограничениями). В большинстве случаев, говоря о коллекции, имеют в виду динамическую коллекцию, то есть коллекцию второго вида, хотя, например, обычный статический массив — это тоже коллекция.
  • Коллекция может хранить объекты только одного или различных типов. Во втором случае говорят о гетерогенной коллекции.

По логике организации

В зависимости от того, как логически организован доступ к данным коллекции, выделяются следующие основные типы:

  • Вектор — элементы коллекции упорядочены, каждый имеет собственный номер, называемый индексом, по которому к нему можно в любой момент обратиться. Как правило, в качестве индексов выступают последовательные целые числа либо значения, приводимые к ним. Для обращения к элементу вектора используется имя вектора и значение индекса. При добавлении нового элемента он добавляется либо в конец вектора, либо в позицию с заданным индексом. Удаление элемента из вектора приводит к образованию пустого элемента.
  • Матрица — элементы имеют два упорядоченных индекса, каждый из которых является целым числом или значением, приводимым к целому. Для доступа к элементу нужно указать имя матрицы и оба индекса. Новый элемент может быть добавлен только в позицию с заданной парой индексов. Удаление приводит к оставлению пустого элемента.
  • Многомерный массив — логическое развитие идеи вектора и матрицы до большего (в общем случае — произвольного) числа индексов.
  • Список — элементы коллекции упорядочены, идентификаторов у элементов нет. Список — коллекция с последовательным доступом. В любой момент доступен первый элемент коллекции (обычно также доступен и последний). От любого элемента коллекции можно получить доступ к следующему по порядку, таким образом, можно последовательно дойти от первого элемента списка до любого желаемого. Возможна реализация, допускающая обратный проход (к предыдущему элементу от известного). Новый элемент может добавляться в начало или в конец списка. При удалении элемента из начала списка первым элементом становится следующий за ним, при удалении из конца — предыдущий, из середины — предыдущий и последующий элементы становятся, соответственно, предыдущим и последующим один для другого.
  • Стек — коллекция, реализующая принцип хранения «LIFO» («последним пришёл — первым вышел»). В стеке постоянно доступен только один элемент — тот, который был добавлен последним. Новый элемент может быть добавлен в стек, он станет текущим. Текущий элемент всегда можно удалить («взять») из стека, после этого становится доступен элемент, который был добавлен непосредственно перед ним.
  • Очередь — коллекция, реализующая принцип хранения «FIFO» («первым пришёл — первым вышел»). В очереди постоянно доступен только один элемент — тот, который был добавлен самым первым из имеющихся. При добавлении нового элемента он попадает в очередь. Текущий элемент можно удалить — тогда текущим станет элемент, добавленный первым из оставшихся.
  • Ассоциативный массив (словарь) — неупорядоченная коллекция, хранящая пары «ключ — значение». Доступ к элементам производится по ключу. В качестве ключа могут использоваться значения различных типов, единственное ограничение — тип ключа должен допускать сравнение на равенство. Любая пара может быть в любой момент удалена. Добавляться может только пара (с определённым ключом). Может вводиться запрет на дублирование ключей в коллекции. Если такого ограничения нет, то при обращении по дублирующемуся ключу может выдаваться либо n-е найденное значение (где n либо постоянно, либо определяется формой запроса), либо все значения с данным ключом.
  • Множество — неупорядоченная коллекция, хранящая набор уникальных значений и поддерживающая для них операции добавления, удаления и определения вхождения. Как правило, для множеств поддерживаются операции, аналогичные операциям с математическими множествами: объединение, пересечение, симметричная разность множеств и несимметричная разность множеств.
  • Мультимножество — неупорядоченная коллекция, аналогичная множеству, но допускающая наличие в коллекции одновременно двух и более одинаковых значений.

По реализации

На уровне реализации коллекция может представлять собой одну из следующих структур данных:

Операции над коллекциями

В зависимости от логического типа коллекции и от реализации могут поддерживаться различные операции над коллекциями в целом. Во всех случаях операции могут производиться только над парами коллекций одного типа (и, если коллекции не гетерогенные, с одним типом элементов). Могут поддерживаться также следующие операции:

  • Для всех видов коллекций — объединение. Результатом такой операции становится коллекция того же типа, что и операнды, содержащая все элементы, содержащиеся в операндах.
  • Для векторов и матриц, содержащих числовые значения — типичные математические операции над одноимёнными объектами: сложение, вычитание, умножение, транспонирование.
  • Для векторов — извлечения диапазона индексов. Результатом такой операции будет вектор того же типа, содержащий только те элементы исходного, которые попадают в некоторый заданный диапазон.
  • Для векторов и списков — сортировка.
  • Для множеств — объединение, пересечение, разность и симметричная разность.

Известные реализации

  • Glib — библиотека, реализующая большинство коллекций под лицензией GNU LGPL
  • STL — реализация в виде библиотеки шаблонов для C++.

См. также

  • Итератор

Примечания

Ссылки

  • apache.org
  • google.com
  • Mango Java library
  • Коллекции и контейнеры в спецификации RDF

Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Коллекция данных, Что такое Коллекция данных? Что означает Коллекция данных?

U etogo termina sushestvuyut i drugie znacheniya sm Kollekciya Kollekciya v programmirovanii programmnyj obekt soderzhashij v sebe tem ili inym obrazom nabor znachenij odnogo ili razlichnyh tipov i pozvolyayushij obrashatsya k etim znacheniyam Kollekciya pozvolyaet zapisyvat v sebya znacheniya i izvlekat ih Naznachenie kollekcii sluzhit hranilishem obektov i obespechivat dostup k nim Obychno kollekcii ispolzuyutsya dlya hraneniya grupp odnotipnyh obektov podlezhashih stereotipnoj obrabotke Dlya obrasheniya k konkretnomu elementu kollekcii mogut ispolzovatsya razlichnye metody v zavisimosti ot eyo logicheskoj organizacii Realizaciya mozhet dopuskat vypolnenie otdelnyh operacij nad kollekciyami v celom Nalichie operacij nad kollekciyami vo mnogih sluchayah mozhet sushestvenno uprostit programmirovanie Kollekcii i kontejneryKollekciya ili kontejner gruppiruet nekotoroe peremennoe vozmozhno nulevoe chislo elementov dannyh kotorye imeyut nekotoroe obshee znachenie dlya resheniya problemy Nad nimi provodyatsya operacii nekotorym sposobom Obychno elementy dannyh imeyut odin i tot zhe tip ili zhe v yazykah podderzhivayushih nasledovanie tipy budut polucheny iz nekotorogo obshego tipa predka Kollekciya ponyatie primenimoe k abstraktnym tipam dannyh i ne predpisyvaet opredelyonnuyu realizaciyu cherez konkretnuyu strukturu dannyh hotya chasto sushestvuet ustoyavshijsya vybor Kontejnery v teorii tipov abstrakcii kotorye razreshayut kollekciyam razlichnyh struktur takih kak spiski i derevya byt predstavlennymi nekotorym odnorodnym sposobom Unarnyj kontejner opredelyon indeksami S i semejstvom tipov na poziciyah P indeksiruemymi cherez S zadana funkciya ot tipov indeksov k tipu elementov Kontejnery mozhno rassmatrivat kak kanonicheskie klassy dlya kollekcij razlichnyh tipov Spiski indeksiruyutsya cherez naturalnye chisla vklyuchaya nol Dlya spiskov opredelyon maksimalnyj indeks Dlya derevev struktura dereva mozhet byt vyrazhena cherez indeksy bez konkretnoj informacii o soderzhimom uzlov Indeksy elementov struktury v pamyati izomorfny putyam ot kornya dereva do ego uzlov KlassifikaciyaPo obshim harakteristikam Kollekciya mozhet imet postoyannyj libo dinamicheski izmenyayushijsya razmer V pervom sluchae v kollekciyu mozhet byt zapisano tolko strogo opredelyonnoe kolichestvo obektov vo vtorom kollekciya dopuskaet razmeshenie stolkih obektov skolko neobhodimo razumeetsya v predelah zadavaemyh tehnicheskimi ogranicheniyami V bolshinstve sluchaev govorya o kollekcii imeyut v vidu dinamicheskuyu kollekciyu to est kollekciyu vtorogo vida hotya naprimer obychnyj staticheskij massiv eto tozhe kollekciya Kollekciya mozhet hranit obekty tolko odnogo ili razlichnyh tipov Vo vtorom sluchae govoryat o geterogennoj kollekcii Po logike organizacii V zavisimosti ot togo kak logicheski organizovan dostup k dannym kollekcii vydelyayutsya sleduyushie osnovnye tipy Vektor elementy kollekcii uporyadocheny kazhdyj imeet sobstvennyj nomer nazyvaemyj indeksom po kotoromu k nemu mozhno v lyuboj moment obratitsya Kak pravilo v kachestve indeksov vystupayut posledovatelnye celye chisla libo znacheniya privodimye k nim Dlya obrasheniya k elementu vektora ispolzuetsya imya vektora i znachenie indeksa Pri dobavlenii novogo elementa on dobavlyaetsya libo v konec vektora libo v poziciyu s zadannym indeksom Udalenie elementa iz vektora privodit k obrazovaniyu pustogo elementa Matrica elementy imeyut dva uporyadochennyh indeksa kazhdyj iz kotoryh yavlyaetsya celym chislom ili znacheniem privodimym k celomu Dlya dostupa k elementu nuzhno ukazat imya matricy i oba indeksa Novyj element mozhet byt dobavlen tolko v poziciyu s zadannoj paroj indeksov Udalenie privodit k ostavleniyu pustogo elementa Mnogomernyj massiv logicheskoe razvitie idei vektora i matricy do bolshego v obshem sluchae proizvolnogo chisla indeksov Spisok elementy kollekcii uporyadocheny identifikatorov u elementov net Spisok kollekciya s posledovatelnym dostupom V lyuboj moment dostupen pervyj element kollekcii obychno takzhe dostupen i poslednij Ot lyubogo elementa kollekcii mozhno poluchit dostup k sleduyushemu po poryadku takim obrazom mozhno posledovatelno dojti ot pervogo elementa spiska do lyubogo zhelaemogo Vozmozhna realizaciya dopuskayushaya obratnyj prohod k predydushemu elementu ot izvestnogo Novyj element mozhet dobavlyatsya v nachalo ili v konec spiska Pri udalenii elementa iz nachala spiska pervym elementom stanovitsya sleduyushij za nim pri udalenii iz konca predydushij iz serediny predydushij i posleduyushij elementy stanovyatsya sootvetstvenno predydushim i posleduyushim odin dlya drugogo Stek kollekciya realizuyushaya princip hraneniya LIFO poslednim prishyol pervym vyshel V steke postoyanno dostupen tolko odin element tot kotoryj byl dobavlen poslednim Novyj element mozhet byt dobavlen v stek on stanet tekushim Tekushij element vsegda mozhno udalit vzyat iz steka posle etogo stanovitsya dostupen element kotoryj byl dobavlen neposredstvenno pered nim Ochered kollekciya realizuyushaya princip hraneniya FIFO pervym prishyol pervym vyshel V ocheredi postoyanno dostupen tolko odin element tot kotoryj byl dobavlen samym pervym iz imeyushihsya Pri dobavlenii novogo elementa on popadaet v ochered Tekushij element mozhno udalit togda tekushim stanet element dobavlennyj pervym iz ostavshihsya Associativnyj massiv slovar neuporyadochennaya kollekciya hranyashaya pary klyuch znachenie Dostup k elementam proizvoditsya po klyuchu V kachestve klyucha mogut ispolzovatsya znacheniya razlichnyh tipov edinstvennoe ogranichenie tip klyucha dolzhen dopuskat sravnenie na ravenstvo Lyubaya para mozhet byt v lyuboj moment udalena Dobavlyatsya mozhet tolko para s opredelyonnym klyuchom Mozhet vvoditsya zapret na dublirovanie klyuchej v kollekcii Esli takogo ogranicheniya net to pri obrashenii po dubliruyushemusya klyuchu mozhet vydavatsya libo n e najdennoe znachenie gde n libo postoyanno libo opredelyaetsya formoj zaprosa libo vse znacheniya s dannym klyuchom Mnozhestvo neuporyadochennaya kollekciya hranyashaya nabor unikalnyh znachenij i podderzhivayushaya dlya nih operacii dobavleniya udaleniya i opredeleniya vhozhdeniya Kak pravilo dlya mnozhestv podderzhivayutsya operacii analogichnye operaciyam s matematicheskimi mnozhestvami obedinenie peresechenie simmetrichnaya raznost mnozhestv i nesimmetrichnaya raznost mnozhestv Multimnozhestvo neuporyadochennaya kollekciya analogichnaya mnozhestvu no dopuskayushaya nalichie v kollekcii odnovremenno dvuh i bolee odinakovyh znachenij Po realizacii Na urovne realizacii kollekciya mozhet predstavlyat soboj odnu iz sleduyushih struktur dannyh Massiv Odnosvyaznyj spisok Dvusvyaznyj spisok Stek Hesh tablica Bitovyj massivOperacii nad kollekciyamiV zavisimosti ot logicheskogo tipa kollekcii i ot realizacii mogut podderzhivatsya razlichnye operacii nad kollekciyami v celom Vo vseh sluchayah operacii mogut proizvoditsya tolko nad parami kollekcij odnogo tipa i esli kollekcii ne geterogennye s odnim tipom elementov Mogut podderzhivatsya takzhe sleduyushie operacii Dlya vseh vidov kollekcij obedinenie Rezultatom takoj operacii stanovitsya kollekciya togo zhe tipa chto i operandy soderzhashaya vse elementy soderzhashiesya v operandah Dlya vektorov i matric soderzhashih chislovye znacheniya tipichnye matematicheskie operacii nad odnoimyonnymi obektami slozhenie vychitanie umnozhenie transponirovanie Dlya vektorov izvlecheniya diapazona indeksov Rezultatom takoj operacii budet vektor togo zhe tipa soderzhashij tolko te elementy ishodnogo kotorye popadayut v nekotoryj zadannyj diapazon Dlya vektorov i spiskov sortirovka Dlya mnozhestv obedinenie peresechenie raznost i simmetrichnaya raznost Izvestnye realizaciiGlib biblioteka realizuyushaya bolshinstvo kollekcij pod licenziej GNU LGPL STL realizaciya v vide biblioteki shablonov dlya C Sm takzheIteratorPrimechaniyaSsylkiapache org google com Mango Java library Kollekcii i kontejnery v specifikacii RDFU etoj stati est neskolko problem pomogite ih ispravit V state ne hvataet ssylok na istochniki sm rekomendacii po poisku Informaciya dolzhna byt proveryaema inache ona mozhet byt udalena Vy mozhete otredaktirovat statyu dobaviv ssylki na avtoritetnye istochniki v vide snosok 12 avgusta 2012 Etu statyu neobhodimo ispravit v sootvetstvii s pravilami Vikipedii ob oformlenii statej Pozhalujsta pomogite uluchshit etu statyu 12 avgusta 2012 Pozhalujsta posle ispravleniya problemy isklyuchite eyo iz spiska parametrov Posle ustraneniya vseh nedostatkov etot shablon mozhet byt udalyon lyubym uchastnikom

NiNa.Az

NiNa.Az - Абсолютно бесплатная система, которая делится для вас информацией и контентом 24 часа в сутки.
Взгляните
Закрыто