Algoritmai ir duomenų struktūros
Duomenų tipai
Kas yra duomenų tipas
Duomenų tipas – tai savybė, apibūdinanti kintamuosius ar duomenų struktūras, nurodanti, kokios rūšies duomenys gali būti laikomi ir kokie veiksmai gali būti atliekami su tais duomenimis. Duomenų tipai apibrėžia duomenų reikšmes, formatą, galimus veiksmus ir apribojimus.
Duomenų tipai gali būti skirstomi į šias kategorijas:- Paprastieji (arba primityvūs) duomenų tipai.
- Abstraktūs duomenų tipai, arba tiesiog abstrakti duomenų struktūra.
- Struktūriniai (arba sudėtiniai, neprimityvūs) duomenų tipai, arba tiesiog duomenų struktūros.
1. Paprastieji duomenų tipai
Java kalboje yra šie paprastieji duomenų tipai:
Duomenų tipas | Dydis | Aprašymas |
---|---|---|
byte | 1 baitas | Saugo sveikuosius skaičius nuo -128 iki 127 |
short | 2 baitai | Saugo sveikuosius skaičius nuo -32 768 iki 32 767 |
int | 4 baitai | Saugo sveikuosius skaičius nuo -2 147 483 648 iki 2 147 483 647 |
long | 8 baitai | Saugo sveikuosius skaičius nuo -9 223 372 036 854 775 808 to 9 223 372 036 854 775 807 |
float | 4 baitai | Saugo sveikuosius skaičius nuo -9 223 372 036 854 775 808 to 9 223 372 036 854 775 807 |
float | 4 baitai | Saugo realiuosius (slankiojo kablelio) skaičius. Gali tiksliai atvaizduoti 6–7 reikšmingus skaitmenis. |
double | 8 baitai | Saugo realiuosius (slankiojo kablelio) skaičius. Gali tiksliai atvaizduoti 15-16 reikšmingų skaitmenų. |
boolean | 1 bitas | Loginis tipas, saugo true (tiesa) arba false (netiesa) reikšmę |
char | 2 baitai | Simbolinis tipas, saugo vieną simbolį/raidę arba ASCII reikšmę |
2. Abstraktūs duomenų tipai
Abstraktus duomenų tipas (angl. Abstract Data Type, ADT) yra matematinė arba loginė koncepcija, apibrėžianti duomenų saugojimo ir manipuliavimo operacijas, bet nesusitelkia į jų įgyvendinimo detales. Jis nusako:- Kokius veiksmus galima atlikti su duomenimis (pavyzdžiui, pridėti, pašalinti, ieškoti ir pan.).
- Veiksmų elgesį, bet ne tai, kaip šie veiksmai įgyvendinami.
Java kalboje abstraktūs duomenų tipai vadinami kolekcijomis ir įeina į Java kolekcijų karkasą (angl. Java Collections Framework).
Java kalboje yra šios kolekcijos:
- Masyvas (angl. array)
- Dėklas (angl. stack)
- Eilė (angl. queue)
- Dvipusė eilė (angl. double ended queue)
- Sąrašas (angl. list)
- Aibė (angl. set)
- Žemėlapis (angl. map)
3. Struktūriniai duomenų tipai
Struktūrinis duomenų tipas yra konkreti fizinė realizacija arba programavimo kalbos suteikta priemonė, leidžianti saugoti ir tvarkyti duomenis tam tikra forma. Šie duomenų tipai yra susieti su programavimo kalbomis ir jie nurodo:- Kaip duomenys saugomi atmintyje.
- Kaip jais manipuliuojama naudojant programavimo kalbos mechanizmus.
Struktūriniai duomenų tipai yra glaudžiai susiję su kompiuterio atmintimi ir yra praktiškai įgyvendinami.
Abstraktaus ir struktūrinio duomenų tipų palyginimas
Savybė | Abstraktus duomenų tipas | Struktūrinis duomenų tipas |
---|---|---|
Apibrėžimas | Matematinė ar loginė koncepcija, aprašanti operacijas ir jų elgesį. | Konkretus programavimo kalbos suteiktas mechanizmas duomenims saugoti ir apdoroti. |
Realizacijos tipas | Teorinis modelis. | Fizinė realizacija. |
Priklausomybė nuo įgyvendinimo | Nepriklausoma nuo realizacijos, kalbos ar technologijos. | Priklauso nuo programavimo kalbos ir jos siūlomų priemonių. |
Naudojimas | Naudojama kaip teorinis modelis kuriant algoritmus ir duomenų struktūras. | Naudojama tiesiogiai programavime sprendžiant problemas. |
Pavyzdys | Sąrašas (angl. list) | LinkedList klasė Java kalvoje. |