Масив ба Аррайлист
Масив нь элементүүдийн цуглуулгыг хадгалахад хамгийн түгээмэл хэрэглэгддэг өгөгдлийн бүтэц юм. Ихэнх програмчлалын хэл нь массивыг хялбархан зарлах, массив дахь элементүүдэд хандах аргуудыг өгдөг. Массив жагсаалтыг динамик массив гэж харж болох бөгөөд хэмжээ нь өсөх боломжтой. Энэ шалтгааны улмаас программист массив жагсаалтыг тодорхойлохдоо түүний хэмжээг мэдэх шаардлагагүй болно.
Масив гэж юу вэ?
1-р зурагт үзүүлсэн нь массивын утгыг зарлах, онооход ихэвчлэн хэрэглэгддэг кодын хэсэг юм. Зураг 2 нь массив санах ойд хэрхэн харагдахыг дүрсэлсэн.
int утгууд[5]; утга[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 хүртэлх индексийг ашиглан ханддаг. Массивын нэг чухал шинж чанар нь массивыг бүхэлд нь санах ойн нэг блок болгон хуваарилдаг бөгөөд элемент бүр өөрийн гэсэн утгыг авдаг. массив дахь өөрийн орон зай. Массив тодорхойлогдсоны дараа түүний хэмжээ тогтмол байна. Тиймээс хэрэв та эмхэтгэх үед массивын хэмжээг сайн мэдэхгүй байгаа бол аюулгүй талд байх хангалттай том массивыг тодорхойлох хэрэгтэй болно. Гэхдээ ихэнхдээ бид хуваарилснаасаа цөөн тооны элемент ашиглах болно. Тиймээс ихээхэн хэмжээний санах ой үнэхээр дэмий зарцуулагддаг. Нөгөө талаас хэрэв "хангалттай том массив" хангалттай том биш бол програм гацах болно.
Аррейлист гэж юу вэ?
Массив жагсаалтыг динамик массив гэж харж болох бөгөөд хэмжээ нь өсөх боломжтой. Иймд массив жагсаалтуудыг зарлах үед шаардлагатай элементүүдийн хэмжээг мэдэхгүй тохиолдолд ашиглахад тохиромжтой. Жава хэл дээр массив жагсаалтууд нь зөвхөн объектуудыг агуулж чаддаг бөгөөд тэдгээр нь команд төрлүүдийг шууд агуулж чаддаггүй (та команд төрлүүдийг объект дотор оруулах эсвэл анхдагч төрлүүдийн ороосон ангиллыг ашиглаж болно). Ерөнхийдөө массив жагсаалтад оруулах, устгах, хайх аргуудыг өгдөг. Элементэд хандах цагийн нарийн төвөгтэй байдал нь o(1), харин оруулах, устгах нь o(n) цаг хугацааны нарийн төвөгтэй байдаг. Жава хэл дээр массив жагсаалтуудыг foreach давталт, давталт эсвэл зүгээр л индекс ашиглан дамжуулж болно.
Масив ба массив жагсаалтын ялгаа нь юу вэ
Хэдийгээр массив болон массив жагсаалт нь элементийн цуглуулгыг хадгалахад ашиглагддаг утгаараа ижил төстэй боловч тэдгээрийг хэрхэн тодорхойлсоноор ялгаатай. Массив тодорхойлогдсон үед массивын хэмжээг зааж өгөх ёстой, гэхдээ та бодит хэмжээг мэдэхгүйгээр массивын жагсаалтыг тодорхойлж болно. Та массив жагсаалтад тодорхойлогдсоны дараа элементүүдийг нэмж болох ба энэ нь массивын хувьд боломжгүй юм. Гэхдээ Java хэл дээр массив жагсаалтууд нь анхдагч төрлүүдийг агуулж чаддаггүй, харин массивуудыг команд төрлүүдийг хадгалахад ашиглаж болно. Гэхдээ танд хэмжээ нь өөр өөр өгөгдлийн бүтэц хэрэгтэй бол arraylist нь хамгийн сайн сонголт байх болно.