Массивдер менен Массив тизмелеринин ортосундагы айырма

Массивдер менен Массив тизмелеринин ортосундагы айырма
Массивдер менен Массив тизмелеринин ортосундагы айырма

Video: Массивдер менен Массив тизмелеринин ортосундагы айырма

Video: Массивдер менен Массив тизмелеринин ортосундагы айырма
Video: Python! Flattening Nested Lists 2024, Ноябрь
Anonim

Массивдер жана Аррейлисттер

Массивдер элементтердин жыйнагын сактоо үчүн эң көп колдонулган маалымат структурасы. Көпчүлүк программалоо тилдери массивдерди оңой жарыялоо жана массивдердин элементтерине жетүү ыкмаларын камсыз кылат. Аррейлист динамикалык массив катары каралышы мүмкүн, анын көлөмү чоңоюшу мүмкүн. Ушул себептен улам, программист аны аныктап жатканда анын өлчөмүн билиши керек эмес.

Массивдер деген эмне?

1-сүрөттө көрсөтүлгөн, адатта массивге маанилерди жарыялоо жана ыйгаруу үчүн колдонулган коддун бөлүгү. 2-сүрөт массив эстутумда кандай болоорун сүрөттөйт.

int маанилери[5];

vales[0]=100;

маанилер[1]=101;

маанилер[2]=102;

маанилер[3]=103;

маанилер[4]=104;

1-сүрөт: Массивге маанилерди жарыялоо жана ыйгаруу коду

100 101 102 103 104
Индекс: 0 1 2 3 4

2-сүрөт: Эстутумда сакталган массив

Жогорку код 5 бүтүн санды сактай турган массивди аныктайт жана аларга 0дөн 4кө чейинки индекстер аркылуу кирүүгө болот. Массивдин маанилүү бир касиети – бүт массив эстутумдун бир блогу катары бөлүнөт жана ар бир элемент өзүнүн массивде өз мейкиндиги. Массив аныкталгандан кийин анын өлчөмү бекитилет. Демек, компиляция учурунда массивдин өлчөмүн так билбесеңиз, коопсуз тарапта болуу үчүн жетиштүү чоң массивди аныкташыңыз керек болот. Бирок, көпчүлүк учурда, биз иш жүзүндө биз бөлүнгөн элементтердин санын азыраак колдонобуз. Ошентип, эстутумдун олуттуу көлөмү иш жүзүндө текке кетет. Ал эми "жетиштүү чоң массив" иш жүзүндө жетиштүү чоң болбосо, программа бузулуп калат.

Аррейлисттер деген эмне?

Массивди динамикалык массив катары көрүүгө болот, анын көлөмү чоңоюшу мүмкүн. Демек, массив тизмелери декларация учурунда талап кылынган элементтердин өлчөмүн билбеген кырдаалда колдонуу үчүн идеалдуу. Java тилинде массив тизмелери объекттерди гана кармай алат, алар примитивдик типтерди түздөн-түз кармай алышпайт (сиз примитивдик типтерди объекттин ичине киргизсеңиз болот же примитивдүү типтердин орогуч класстарын колдоно аласыз). Жалпысынан массив тизмелери киргизүү, жок кылуу жана издөө ыкмалары менен камсыз кылынат. Элементке жетүүнүн убакыт татаалдыгы o(1), ал эми киргизүү жана жок кылууда o(n) убакыт татаалдыгы бар. Java тилинде массив тизмелерин foreach циклдери, итераторлор же жөн эле индекстер аркылуу өтсө болот.

Массивдер менен Аррейлисттердин ортосунда кандай айырма бар

Массивдер менен массив тизмелери экөө тең элементтердин жыйнактарын сактоо үчүн колдонулат деген мааниде окшош болсо да, алар кандайча аныкталгандыгы боюнча айырмаланат. Массивдин өлчөмү массив аныкталганда берилиши керек, бирок сиз анык өлчөмүн билбей туруп эле массив тизмесин аныктай аласыз. Сиз массивдер тизмеси аныкталгандан кийин элементтерди кошо аласыз жана бул массивдер менен мүмкүн эмес. Бирок Javaда массивдер примитивдүү типтерди кармай албайт, бирок массивдер примитивдүү типтерди кармоо үчүн колдонулушу мүмкүн. Бирок сизге анын өлчөмүн өзгөртө алган маалымат структурасы керек болсо, аррейлист эң жакшы тандоо болот.

Сунушталууда: