Massiivide Ja Massiiviloendite Erinevus

Massiivide Ja Massiiviloendite Erinevus
Massiivide Ja Massiiviloendite Erinevus

Video: Massiivide Ja Massiiviloendite Erinevus

Video: Massiivide Ja Massiiviloendite Erinevus
Video: Section 6 2024, Aprill
Anonim

Massiivid vs massiivid

Massiivid on elementide kogu salvestamiseks kõige sagedamini kasutatav andmestruktuur. Enamik programmeerimiskeeli pakub meetodeid massiivide ja massiividele juurdepääsu elementide hõlpsaks deklareerimiseks. Massiiviloendit võib vaadelda kui dünaamilist massiivi, mille suurus võib kasvada. Seetõttu ei pea programmeerija seda määratledes teadma massiivide loendi suurust.

Mis on massiivid?

Joonisel 1 on kooditükk, mida tavaliselt kasutatakse massiivi väärtuste deklareerimiseks ja määramiseks. Joonisel 2 on kujutatud, kuidas massiiv mälus välja näeks.

väärtused [0] = 100;

väärtused [1] = 101;

väärtused [2] = 102;

väärtused [3] = 103;

väärtused [4] = 104;

Joonis 1: Massiivi väärtuste deklareerimise ja määramise kood

100 101 102 103 104 Indeks: 0 1 2 3 4

Joonis 2: Mällu salvestatud massiiv

Koodi kohal määratleb massiivi, kuhu saab salvestada 5 täisarvu ja neile pääseb juurde indeksite 0 kuni 4 abil. Massiivi üks oluline omadus on see, et kogu massiiv eraldatakse ühe mäluplokina ja iga element saab massiivis oma ruumi. Kui massiiv on määratletud, on selle suurus fikseeritud. Nii et kui te pole kompileerimise ajal massiivi suuruses kindel, peaksite turvalise külje jaoks määrama piisavalt suure massiivi. Kuid enamasti kasutame tegelikult vähem elemente, kui oleme eraldanud. Nii et arvestatav hulk mälu läheb tegelikult raisku. Teisalt, kui “piisavalt suur massiiv” pole tegelikult piisavalt suur, kukuks programm kokku.

Mis on arraylistid?

Massiiviloendit võib vaadelda kui dünaamilist massiivi, mille suurus võib kasvada. Seetõttu on massiiviloendid ideaalsed kasutamiseks olukordades, kus te ei tea deklareerimise ajal nõutavate elementide suurust. Java-s mahutavad massiivloendid ainult objekte, nad ei saa primitiivseid tüüpe otse hoida (võite primitiivsed tüübid panna objekti sisse või kasutada primitiivsete tüüpide ümbriseklassid). Üldiselt pakutakse massiiviloenditele meetodeid sisestamise, kustutamise ja otsimise teostamiseks. Elemendile juurdepääsu ajaline keerukus on o (1), samas kui sisestamise ja kustutamise ajaline keerukus on o (n). Java-s saab massiiviloendeid läbida foreachi tsüklite, iteraatorite abil või lihtsalt indeksite abil.

Mis vahe on massiividel ja massiiviloenditel

Ehkki massiivid ja massiiviloendid on selles mõttes sarnased, et neid mõlemaid kasutatakse elementide kogumite salvestamiseks, erinevad nad nende määratlemise poolest. Massiivi suurus tuleb anda massiivi määratlemisel, kuid massiivide loendi saate määratleda tegelikku suurust teadmata. Pärast massiivi määratlemist saate lisada massiiviloendisse elemente ja see pole massiividega võimalik. Kuid Java-s ei saa massiiviloendid hoida primitiivseid tüüpe, kuid massiive saab kasutada primitiivsete tüüpide hoidmiseks. Kuid kui vajate andmestruktuuri, mis võib selle suurust muuta, oleks parim valik massiivide loend.

Soovitatav: